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
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">
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/android" />
android:id="@+id/zoomcontrol"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
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);
}
});
}
}
运行效果: