android缩放组件,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

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);

}

});

}

}

运行效果:

5431f26f477401b3b8e59f77d41f6f5e.png

bd09cfb20c38b9a6166f408c224baba8.png

0d81b9d4b6f7b558e41cc5bb8ed6d633.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值