安卓开发入门之图片缩放(翻译)

来源:互联网 发布:电脑找不到windows 编辑:程序博客网 时间:2024/05/17 23:05


原文地址

http://www.coderzheaven.com/2017/05/20/simple-image-scaling-demo-in-android/


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://download.csdn.net/detail/zhangxiangliang2/9873468



原创粉丝点击