Android ZoomControls缩放控件

ZoomControls是一组可缩放的控件。它包含俩个按钮(放大按钮、缩小按钮)

他的方法如下:

hasFocus()://判断焦点

hide()://隐藏

onTouchEvent(MotionEvent event)://现这个方法来处理触摸屏移动事件

setIsZoomInEnabled(boolean isEnabled)://是否允许放大

setIsZoomOutEnabled(boolean isEnabled)://是否允许缩小

setOnZoomInClickListener(View.OnClickListener listener)://注册放大监听器

setOnZoomOutClickListener(View.OnClickListener listener)://注册缩小监听器

setZoomSpeed(long speed)://设置缩放速度

show()://显示

案例图:

布局文件:zoomcontrols.xml

 

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
 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/layout1">
 <ImageView android:id="@+id/imgview"
  android:layout_alignParentTop="true"
  android:layout_centerHorizontal="true"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/android" />
<ZoomControls
  android:id="@+id/zoomcontrol"
  android:layout_alignParentBottom="true"
  android:layout_centerHorizontal="true"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" 
  />
</RelativeLayout>  

2.java文件

 

package com.test;

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.TextView;
import android.widget.ZoomControls;

public class ZoomControlsDemo extends Activity {
	private ZoomControls zoom;
	 private ImageView img;
	 private float scaleWidth = 1;
	 private float scaleHeight = 1;
	 private Bitmap bmp;


	 @Override
	 public void onCreate(Bundle savedInstanceState) {
	  super.onCreate(savedInstanceState);
	  setContentView(R.layout.zoomcontrols);


	  // 取得屏幕分辨率大小
	  DisplayMetrics dm = new DisplayMetrics();
	  getWindowManager().getDefaultDisplay().getMetrics(dm);
	  // 屏幕高度减去zoomControls的高度
	  bmp = BitmapFactory.decodeResource(getResources(), R.drawable.android);
	  img = (ImageView) findViewById(R.id.imgview);
	  // zoom.hide();隐藏zoomControls
	  // zoom.show();显示zoomCOntrols


	  zoom = (ZoomControls) findViewById(R.id.zoomcontrol);
	  img = (ImageView) findViewById(R.id.imgview);
	  zoom.setIsZoomInEnabled(true);
	  zoom.setIsZoomOutEnabled(true);
	  // 图片放大
	  zoom.setOnZoomInClickListener(new OnClickListener() {
	   public void onClick(View v) {
	    int bmpWidth = bmp.getWidth();
	    int bmpHeight = bmp.getHeight();
	    // 设置图片放大但比例
	    double scale = 1.1;
	    // 计算这次要放大的比例
	    scaleWidth = (float) (scaleWidth * scale);
	    scaleHeight = (float) (scaleHeight * scale);
	    // 产生新的大小的Bitmap对象
	    Matrix matrix = new Matrix();
	    matrix.postScale(scaleWidth, scaleHeight);
	    Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth,
	      bmpHeight, matrix, true);
	    img.setImageBitmap(resizeBmp);


	   }
	  });
	  // 图片减小
	  zoom.setOnZoomOutClickListener(new OnClickListener() {
	   public void onClick(View v) {
	    int bmpWidth = bmp.getWidth();
	    int bmpHeight = bmp.getHeight();
	    // 设置图片放大但比例
	    double scale = 0.9;
	    // 计算这次要放大的比例
	    scaleWidth = (float) (scaleWidth * scale);
	    scaleHeight = (float) (scaleHeight * scale);
	    // 产生新的大小但Bitmap对象
	    Matrix matrix = new Matrix();
	    matrix.postScale(scaleWidth, scaleHeight);
	    Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth,
	      bmpHeight, matrix, true);
	    img.setImageBitmap(resizeBmp);
	   }
     });
	 }

}

运行效果:

Android ZoomControls缩放控件

 

Android ZoomControls缩放控件

 

Android ZoomControls缩放控件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(android)