运用Matrix对象来缩放图片文件
范例说明
手机的功能越来越强大,相机功能俨然成为目前手机的标准配备,浏览相片也成为手机必备的功能,能够在浏览相片的同时,对相片作放大缩小的查看,也是一项基本的要求。
本范例将运用Martix(android.graphics.Matrix)对象的postScale()方法来实现在手机上缩放图片的功能,在实现本范例前,需先在/res/drawable/中放入一张图片。以本范例而言,图片文件路径为/res/drawable/ex04_23.png,程序会预先将图片加载到ImageView Widget中,并设计两个Button,一个有放大的功能、一个有缩小的功能,以显示图片放大缩小的效果。为了避免ImageView在放大的过程中,无止境地超过屏幕的尺寸,程序将在放大阶段控制图片的最大宽高。
运行结果
范例程序EX04_23.java
程序中的small()方法会将图片缩小为原尺寸的4/5,big()方法会将图片放大为原尺寸的1.25倍,当放大按钮的onClick事件被触发时,会运行big()方法;缩小按钮的onClick事件被触发时,则运行small()方法。
程序中以Matrix对象搭配Bitmap的createBitmap()方法来对图片进行缩放,并利用DisplayMetrics对象来取得屏幕显示大小,用以控制图片放大后的尺寸不会超过屏幕显示的区域。
/* import程序略 */public class EX04_23 extends Activity{
/* 相关变量声明 */private ImageView mImageView;private Button mButton01;private Button mButton02;private RelativeLayout layout1;private Bitmap bmp;