你的位置:首页 > 操作系统

[操作系统]ZoomControls控件是一个可以缩放控件,可以实现两个按钮控制图片的大小


<??><LinearLayout ="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