http://blog.csdn.net/fan476767883/article/details/7283438
在这我把点击按钮缩放的代码贴上来,因为实在讨厌网上普遍流传的那种“替换imageiew的方法”。
主要代码如下
[java] view
plaincopyprint?
import android.app.activity;
import android.graphics.matrix;
import android.graphics.pointf;
import android.graphics.rect;
import android.os.bundle;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.imagebutton;
import android.widget.imageview;
public class myimageviewactivity extends activity {
private imageview view;
matrix matrix = new matrix();
rect rect;
private imagebutton zoom_in,zoom_out;
private pointf mid;
@override
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
mid = new pointf();
findall();
setlistener();
}
private void findall(){
view = (imageview) findviewbyid(r.id.image_view);
zoom_in = (imagebutton) findviewbyid(r.id.ibtn_zoom_in);
zoom_out = (imagebutton) findviewbyid(r.id.ibtn_zoom_out);
}
private void setlistener(){
view.setontouchlistener(new mulitpointtouchlistener());
//放大
zoom_in.setonclicklistener(new onclicklistener() {
public void onclick(view v) {
matrix.set(view.getimagematrix());
setmid();//设置放大的中心
matrix.postscale(1.3f, 1.3f, mid.x,mid.y);
view.setimagematrix(matrix);
view.invalidate();
}
});
//缩小
zoom_out.setonclicklistener(new onclicklistener() {
matrix.postscale(0.8f, 0.8f, mid.x,mid.y);
private void setmid(){
rect = view.getdrawable().getbounds();
mid.x = view.getdrawable().getbounds().centerx();
mid.y = view.getdrawable().getbounds().centery();
}
其中view.setontouchlistener(new mulitpointtouchlistener()); 就是上边那篇文章里的。
layout如下
[html] view
<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<relativelayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<imageview
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaletype="matrix"
android:layout_centerinparent="true"
android:src="@drawable/test_image" />
<linearlayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignparentbottom="true"
android:gravity="right"
android:orientation="horizontal">
<imagebutton
android:id="@+id/ibtn_zoom_out"
android:layout_width="66dp"
android:layout_height="42dp"
android:adjustviewbounds="true"
android:background="#00000000"
android:padding="0dp"
android:scaletype="fitcenter"
android:src="@drawable/ibtn_gallery_zoom_out" />
<imagebutton
android:id="@+id/ibtn_zoom_in"
android:src="@drawable/ibtn_gallery_zoom_in" />
</linearlayout>
</relativelayout>
</linearlayout>
后面会把全部源码上传上来
最后效果如图:
下载地址:http://download.csdn.net/detail/fan476767883/4081476