
通过Matrix设置图片浏览的大小,然后重新生成一个ImageView,指定重新设置的图片
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.ImageView;
public class MatrixTest extends Activity {
/** Called when the activity is first created. */
private int dis_X,dis_Y;
private float scaleW = 1,scaleH = 1;
private int id;
private Bitmap bm;
private ImageView iv ;
private AbsoluteLayout abs;
private Button btn1;//缩小
private Button btn2;//放大
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
dis_X = dm.widthPixels;
dis_Y = dm.heightPixels-80;
bm = BitmapFactory.decodeResource(this.getResources(), R.drawable.jz);
iv = (ImageView)findViewById(R.id.ImageView01);
iv.setImageResource(R.drawable.jz);
abs = (AbsoluteLayout)findViewById(R.id.layout1);
btn1 = (Button)findViewById(R.id.Button01);//缩小
btn2 = (Button)findViewById(R.id.Button02);//放大
btn1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
small();
}
});
btn2.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
big();
}
});
}
public void small(){
int bmW = bm.getWidth();
int bmH = bm.getHeight();
//设置图片比例
double scale = 0.8;
//计算缩小比例
scaleW = (float)(scaleW*scale);
scaleH = (float)(scaleH*scale);
//按照比例缩小后生成一个Bitmap
Matrix matrix = new Matrix();
matrix.postScale(scaleW, scaleH);
Bitmap btp = Bitmap.createBitmap(bm,0,0,bmW,bmH,matrix,true);
if(id == 0){
//第一次点击 删除原来默认的ImageView
abs.removeView(iv);
}else{
//第n(n!=0)次点击 删除原来放大或缩小所产生的ImageView
abs.removeView((ImageView)findViewById(id));
}
id++;
ImageView image = new ImageView(this);
image.setId(id);
image.setImageBitmap(btp);
abs.addView(image);
setContentView(abs);
}
public void big(){
int bmW = bm.getWidth();
int bmH = bm.getHeight();
//设置图片比例
double scale = 1.25;
//计算缩小比例
scaleW = (float)(scaleW*scale);
scaleH = (float)(scaleH*scale);
//按照比例放大后生成一个Bitmap
Matrix matrix = new Matrix();
matrix.postScale(scaleW, scaleH);
Bitmap btp = Bitmap.createBitmap(bm,0,0,bmW,bmH,matrix,true);
if(id == 0){
//第一次点击 删除原来默认的ImageView
abs.removeView(iv);
}else{
//第n(n!=0)次点击 删除原来放大或缩小所产生的ImageView
abs.removeView((ImageView)findViewById(id));
}
id++;
ImageView image = new ImageView(this);
image.setId(id);
image.setImageBitmap(btp);
abs.addView(image);
setContentView(abs);
}
}
