android image对象改变,【Android学习】动态放大缩小ImageView里的图片,运用Matrix对象来....

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/* 设置图片缩小的比例 */

double scale=0.8;

/* 计算出这次要缩小的比例 */

scaleWidth=(float) (scaleWidth*scale);

scaleHeight=(float) (scaleHeight*scale);

/* 产生reSize后的Bitmap对象 */

Matrix matrix = new Matrix();

matrix.postScale(scaleWidth, scaleHeight);

Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,

bmpHeight,matrix,true);

if(id==0)

{

/* 如果是第一次按,就删除原来默认的ImageView */

layout1.removeView(mImageView);

}

else

{

/* 如果不是第一次按,就删除上次放大缩小所产生的ImageView */

layout1.removeView((ImageView)findViewById(id));

}

/* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */

id++;

ImageView imageView = new ImageView(EX04_23.this);

imageView.setId(id);

imageView.setImageBitmap(resizeBmp);

layout1.addView(imageView);

setContentView(layout1);

/* 因为图片放到最大时放大按钮会disable,所以在缩小

时把它重设为enable */

mButton02.setEnabled(true);

}

/* 图片放大的method */

private void big()

{

int bmpbmpWidth=bmp.getWidth();

int bmpbmpHeight=bmp.getHeight();

/* 设置图片放大的比例 */

double scale=1.25;

/* 计算这次要放大的比例 */

scaleWidth=(float)(scaleWidth*scale);

scaleHeight=(float)(scaleHeight*scale);

/* 产生reSize后的Bitmap对象 */

Matrix matrix = new Matrix();

matrix.postScale(scaleWidth, scaleHeight);

Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,

bmpHeight,matrix,true);

if(id==0)

{

/* 如果是第一次按,就删除原来设置的ImageView */

layout1.removeView(mImageView);

}

else

{

/* 如果不是第一次按,就删除上次放大缩小所产生的ImageView */

layout1.removeView((ImageView)findViewById(id));

}

/* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */

id++;

ImageView imageView = new ImageView(EX04_23.this);

imageView.setId(id);

imageView.setImageBitmap(resizeBmp);

layout1.addView(imageView);

setContentView(layout1);

/* 如果再放大会超过屏幕大小,就把Button disable */

if(scaleWidth*scale*bmpWidth>displayWidth||

scaleHeight*scale*bmpHeight>displayHeight)

{

mButton02.setEnabled(false);

}

}

}

扩展学习

因为在Android中不允许ImageView在产生后,动态修改其长度与宽度,所以为了实现图片放大、缩小的功能,使用的方式是当用户在单击放大或缩小的按钮时,除了将图片作放大或缩小的动作外,并将原来Layout中的ImageView删除,重新产生一个新的ImageView,指定图片给它后,再放入Layout里。用户看起来,就好像是同一张图片在放大或缩小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值