2013-03-17 76 views
7

Làm cách nào để tôi phóng to và thu nhỏ khi nhấp vào hình ảnh? Tôi muốn chương trình của tôi phản ứng khi người dùng nhấp vào imageview phải lớn đến mức nào đó và có thể di chuyển số lần xem trên màn hình đó và đôi khi nó làm giảm kích thước dọc theo khi nó di chuyển trên cảm ứng bất cứ nơi nào trên màn hình. khi nhấp một lần nữa là đi tiếp tục kích thước ban đầu những gì tôi làm gì?hoạt ảnh để phóng to và thu nhỏ trong android cho imageview

Trả lời

14

Theo như tôi biết có hai cách.

Cách đầu tiên:

Tạo thư mục mới có tên gọi là 'hoạt hình'. Hơn tạo một tệp xml bên trong, ví dụ: zoomin.xml. Sau đó đặt đoạn mã sau vào bên trong.

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXScale="1" 
    android:toXScale="5" 
    android:fromYScale="1" 
    android:toYScale="5" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="1000" 
    android:fillAfter="true"> 
</scale> 

Thực hiện một thao tác khác để thu nhỏ, nhưng với giá trị được đảo ngược.

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXScale="5" 
    android:toXScale="1" 
    android:fromYScale="5" 
    android:toYScale="1" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="1000" 
    android:fillAfter="true"> 
</scale> 

Bạn có thể thay đổi giá trị theo nhu cầu của mình. Tôi nghĩ rằng họ tự giải thích.

Và bây giờ trong mã java của bạn.

ImageView imageView = (imageView)findViewById(R.id.yourImageViewId); 

Animation zoomin = AnimationUtils.loadAnimation(this, R.anim.zoomin); 
Animation zoomout = AnimationUtils.loadAnimation(this, R.anim.zoomout); 
imageView.setAnimation(zoomin); 
imageView.setAnimation(zoomout); 

Bây giờ bạn chỉ cần theo dõi trạng thái hiện tại là gì. Và đối với mỗi quốc gia thực hiện dòng này của mã:

imageView.startAnimation(zoomin); 

imageView.startAnimation(zoomout); 

Ví dụ:

imageView.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       if(!pressed) { 
        v.startAnimation(zoomin); 
        pressed = !pressed; 
       } else { 
        v.startAnimation(zoomout); 
        pressed = !pressed; 
       } 
      } 
     }); 

Một cách khác được mô tả ở đây: http://developer.android.com/training/animation/zoom.html.

+0

Cảm ơn bạn rất nhiều –

0

Bạn có thể làm điều này bằng cách làm theo hướng dẫn này một cách dễ dàng

http://developer.android.com/training/animation/zoom.html

thời gian ngắn bạn nên sử dụng ImageView thứ ba đó là vô hình khi người dùng chạm vào bất kỳ ImageView bạn muốn, bạn có thể hiển thị nó bằng cách sử dụng hình ảnh động trong ImageView vô hình.

Các vấn đề liên quan