如何使用代码动态的获取和设置ImageView的宽度和高度?-阿里云开发者社区

开发者社区> 范大脚脚> 正文

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

简介:
+关注继续查看

http://blog.csdn.net/wulianghuan/article/details/8644144

国内某金融企业的一道面试题:如何在代码中获得一个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()可以获得位图的大小,代码例子如下:

 

  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的对象来进行设置 

代码如下:

 

    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);  
分类: android solve


本文转自wanqi博客园博客,原文链接:http://www.cnblogs.com/wanqieddy/p/4960244.html如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
linux下设置vim
更多参考:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长度,非常灵活。
644 0
【HEVC学习与研究】46、HEVC参考代码中SAO的实现
1、HM10 encoder关于SAO的初始化操作 在编码开始之前,编码器将进行与SAO有关的一些初始化设置。如在TAppEncTop::encode()函数中调用TAppEncTop::xInitLibCfg()进行与config相关的设置: m_cTEncTop.
1576 0
【软件测试】3、代码检查与Code Review
对于一家技术研发流程完善的技术公司来说,代码审查都是必不可少的一部分。虽然大部分代码审查工作都是研发团队的工程师完成,广义上讲,代码审查也是软件测试的一部分。
819 0
移动开发多平台代码共享
  做移动开发快一年了,有幸接触了WM、Symbian、Android、iPhone等多个平台的开发。往往一个软件需要实现多个平台的版本,对于不同平台进行重新编码是一件很费劲的事情,其实我们可以通过代码共用技术,实现对一些代码的重用。
1062 0
【Unity3D 灵巧小知识点】 ☀️ | Unity中 使用代码 激活/取消激活 某个游戏对象的方法
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、r美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。
15 0
+关注
3656
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载