1.首先定义图片缩放类
public class ImageScaler
extends ScaleGestureDetector.SimpleOnScaleGestureListener {
TextView scaleDataMsg;
ImageView myImage;
float factor;
public ImageScaler(TextView v, ImageView iv) {
super();
scaleDataMsg = v;
myImage = 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;
scaleDataMsg.setText(String.valueOf(scaleFactor)
+ "\n" + String.valueOf(factor));
myImage.setScaleX(factor);
myImage.setScaleY(factor);
return true;
}
}
2.添加布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/scaleDataMsg"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/myImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/android" />
</LinearLayout>
3.在Activity中使用
public class MainActivity extends AppCompatActivity {
private TextView scaleDataMsg;
private ImageView myImage;
private ScaleGestureDetector scaleGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scaleDataMsg = (TextView) findViewById(R.id.scaleDataMsg);
myImage = (ImageView) findViewById(R.id.myImage);
scaleGestureDetector = new ScaleGestureDetector(
this, new ImageScaler(scaleDataMsg, myImage));
}
@Override
public boolean onTouchEvent(MotionEvent event) {
scaleGestureDetector.onTouchEvent(event);
return true;
}
}
4.运行结果
转载链接:http://blog.youkuaiyun.com/zhangxiangliang2/article/details/73410770