最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

android 动态放大(缩小)图片

来源:动视网 责编:小OO 时间:2025-09-29 04:13:10
文档

android 动态放大(缩小)图片

Android中不允许ImageView在产生后动态修改他的长度和宽度,所以呢,我们只好在放大(缩小)的时候删除原来的ImageView通过Matrix设置图片浏览的大小,然后重新生成一个ImageView,指定重新设置的图片importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Matrix;importandroi
推荐度:
导读Android中不允许ImageView在产生后动态修改他的长度和宽度,所以呢,我们只好在放大(缩小)的时候删除原来的ImageView通过Matrix设置图片浏览的大小,然后重新生成一个ImageView,指定重新设置的图片importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Matrix;importandroi
Android中不允许ImageView在产生后动态修改他的长度和宽度,所以呢,我们只好在放大(缩小)的时候删除原来的ImageView

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

}

}

文档

android 动态放大(缩小)图片

Android中不允许ImageView在产生后动态修改他的长度和宽度,所以呢,我们只好在放大(缩小)的时候删除原来的ImageView通过Matrix设置图片浏览的大小,然后重新生成一个ImageView,指定重新设置的图片importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Matrix;importandroi
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top