当前位置: 代码迷 >> Android >> ZoomControls控件是一个可以缩放控件,可以实现两个旋钮控制图片的大小
  详细解决方案

ZoomControls控件是一个可以缩放控件,可以实现两个旋钮控制图片的大小

热度:80   发布时间:2016-04-24 11:42:08.0
ZoomControls控件是一个可以缩放控件,可以实现两个按钮控制图片的大小
<?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