+ Layout activity_main.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img_view" android:layout_width="wrap_content" android:src="@drawable/large" android:contentDescription="@string/app_name" android:layout_height="wrap_content" /> </RelativeLayout>
+ Class MainActivity.java event touchevent.
package com.anhttvn.demoadmod; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private ScaleGestureDetector scaleGestureDetector; private ImageView imgDemo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgDemo = (ImageView)findViewById(R.id.img_view); scaleGestureDetector = new ScaleGestureDetector( this, new MySimpleOnScaleGestureListener(imgDemo)); } @Override public boolean onTouchEvent(MotionEvent event) { scaleGestureDetector.onTouchEvent(event); return true; } private class MySimpleOnScaleGestureListener extends ScaleGestureDetector.SimpleOnScaleGestureListener{ ImageView viewMyImage; float factor; public MySimpleOnScaleGestureListener( ImageView iv) { super(); viewMyImage = iv; } @Override public boolean onScaleBegin(ScaleGestureDetector detector) { factor = 1.0f; return true; } @Override public boolean onScale(ScaleGestureDetector detector) { float scaleFactor = detector.getScaleFactor() - 1; factor += scaleFactor; viewMyImage.setScaleX(factor); viewMyImage.setScaleY(factor); return true; } } }