<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android
<?xml version="1.0" encoding="utf-8"?> <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/foot" /> <ZoomControls android:id="@+id/zoomcontrol" android:layout_gravity="bottom" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
package com.example.yanlei.my; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.os.Bundle; import android.app.Activity; import android.widget.Toast; import android.view.Menu; import android.view.MenuItem; 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 AppCompatActivity { 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.foot); 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); } }); } }
參考:http://blog.csdn.net/jianghuiquan/article/details/8350538