如何使用代码动态的获取和设置ImageView的宽度和高度?

本文详细介绍了如何在代码中获取ImageView中的图片高度和宽度,包括使用Bitmap对象的宽高属性以及动态设置图片大小的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

国内某金融企业的一道面试题:如何在代码中获得一个ImageVIew的高度和宽度?

相信很大一部分人,会直接想到用imageview.getWidth() 和 imageview.getHeight() 来获得,其实不然。

我们可以自己写个程序来跑一下,当我们放置一张图片在imageView中,并且设置了它的高度和宽度,我们不妨在日志控制台输出看一下,

Log.i("MainActivity", "宽度:"+String.valueOf(imageView.getWidth()));
Log.i("MainActivity", "高度:"+String.valueOf(imageView.getHeight()));

输出结果如下:

 

是不是很恼火呀,结果就是这样。

那么究竟该如何获取图片的高度和宽度呢? 其实,我们可以通过构建一个BItMap对象出来,这个BItMap就是从我们的那种图片资源转换而来,bitmap对象中的getWidth() 和getHeight()可以获得位图的大小,代码例子如下:

[html]  view plain copy
  1. <span style="white-space:pre">  </span>ImageView imageView = (ImageView)findViewById(R.id.imageView);  
  2.     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.newscar);  
  3.     Log.i("MainActivity", "宽度:"+String.valueOf(bitmap.getWidth()));  
  4.     Log.i("MainActivity", "高度:"+String.valueOf(bitmap.getHeight()));  

这个时候我们再来看一下日志控制台的输出结果:


Ok,第一个问题我们搞定了(注意:这是原图片的大小,不是我们布局文件中设置的大小)。


接下来我们看一下如何动态设置图片的高度和宽度,这问题比较简单,我们直接使用LayoutParams的对象来进行设置 

代码如下:

[html]  view plain copy
  1. <span style="white-space:pre">  </span>ImageView imageView = (ImageView)findViewById(R.id.imageView);  
  2.     imageView.setImageResource(R.drawable.newscar);  
  3.     LayoutParams params = imageView.getLayoutParams();  
  4.     params.height=200;  
  5.     params.width =100;  
  6.     imageView.setLayoutParams(params);  

原文地址:http://blog.youkuaiyun.com/wulianghuan/article/details/8644144
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值