本文實例講述了Android編程實現圖片放大縮小功能ZoomControls控件用法。分享給大家供大家參考,具體如下:
MainActivity代碼:
package example.com.myapplication;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ZoomControls;public class MainActivity extends Activity {  private LinearLayout llLayout;  private ZoomControls zoomcontrols;  private ImageView img;  private int id=0;  private int displayWidth;  private int displayHeight;  private float scaleWidth = 1;  private float scaleHeight = 1;  private Bitmap bitmap;  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    llLayout =(LinearLayout)findViewById(R.id.layout);    //取得屏幕分辨率大小    DisplayMetrics dm = new DisplayMetrics();    getWindowManager().getDefaultDisplay().getMetrics(dm);    displayWidth = dm.widthPixels;    //屏幕高度減去zoomControls的高度    displayHeight = dm.heightPixels;    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.c);    img =(ImageView)findViewById(R.id.image);    //zoom.hide();隱藏zoomControls    //zoom.show();顯示zoomCOntrols    zoomcontrols =(ZoomControls)findViewById(R.id.zoomcontrol);    img =(ImageView)findViewById(R.id.image);    zoomcontrols.setIsZoomInEnabled(true);    zoomcontrols.setIsZoomOutEnabled(true);    //圖片放大    zoomcontrols.setOnZoomInClickListener(new OnClickListener()    {      public void onClick(View v)      {        int bmpWidth = bitmap.getWidth();        int bmpHeight = bitmap.getHeight();        //設置圖片放大但比例        double scale = 1.25;        //計算這次要放大的比例        scaleWidth =(float)(scaleWidth*scale);        scaleHeight =(float)(scaleHeight*scale);        //產生新的大小但Bitmap對象        Matrix matrix = new Matrix();        matrix.postScale(scaleWidth, scaleHeight);        Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bmpWidth,bmpHeight,matrix,true);        img.setImageBitmap(resizeBmp);      }    });    //圖片減小    zoomcontrols.setOnZoomOutClickListener(new OnClickListener()    {      public void onClick(View v) {        int bmpWidth = bitmap.getWidth();        int bmpHeight = bitmap.getHeight();        //設置圖片放大但比例        double scale = 0.8;        //計算這次要放大的比例        scaleWidth =(float)(scaleWidth*scale);        scaleHeight =(float)(scaleHeight*scale);        //產生新的大小但Bitmap對象        Matrix matrix = new Matrix();        matrix.postScale(scaleWidth, scaleHeight);        Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bmpWidth,bmpHeight,matrix,true);        img.setImageBitmap(resizeBmp);      }    });  }}activity_main布局文件代碼:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/layout" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/c" /> <ZoomControls android:id="@+id/zoomcontrol" android:layout_gravity="bottom" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
常見方法說明:
	hasFocus():判斷焦點
	hide():隱藏
	onTouchEvent(MotionEvent event):現這個方法來處理觸摸屏移動事件
	setIsZoomInEnabled(boolean isEnabled):是否允許放大
	setIsZoomOutEnabled(boolean isEnabled):是否允許縮小
	setOnZoomInClickListener(View.OnClickListener listener):注冊放大監聽器
	setOnZoomOutClickListener(View.OnClickListener listener):注冊縮小監聽器
	setZoomSpeed(long speed):設置縮放速度
	show():顯示
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答