如何使用代码动态的获取和设置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()可以获得位图的大小,代码例子如下:

 

[html]  view plain copy print ?
 
  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 print ?
 
    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如需转载请自行联系原作者


相关文章
|
4月前
|
XML Java Android开发
Android Studio中视图基础之设置视图的宽高、间距、对齐方式的讲解与实战(附源码 超详细必看)
Android Studio中视图基础之设置视图的宽高、间距、对齐方式的讲解与实战(附源码 超详细必看)
74 0
|
前端开发
前端项目实战112-设置宽度按照内容自适应设置宽度
前端项目实战112-设置宽度按照内容自适应设置宽度
67 0
|
XML 数据格式 Android开发
BottomSheetDialog 使用详解,设置圆角、固定高度、默认全屏等
BottomSheetDialog 使用详解,设置圆角、固定高度、默认全屏等
1022 0
BottomSheetDialog 使用详解,设置圆角、固定高度、默认全屏等
|
Android开发
Android获取状态栏高度,动态设置控件高度
获取状态栏高度;动态设置控件高度 ;务必保持一致 ( LinearLayout. LinearLayout.LayoutParams 与需要设置的控件父控件)
719 0
|
XML Android开发 数据格式
android 动态设置控件宽度,比例等
android 动态设置控件宽度,比例等
android 动态设置控件宽度,比例等
|
前端开发 Android开发
【Android 应用开发】Paint 渲染 之 BitmapShader 位图渲染 ( 渲染流程 | CLAMP 拉伸最后像素 | REPEAT 重复绘制图片 | MIRROR 绘制反向图片 )(一)
【Android 应用开发】Paint 渲染 之 BitmapShader 位图渲染 ( 渲染流程 | CLAMP 拉伸最后像素 | REPEAT 重复绘制图片 | MIRROR 绘制反向图片 )(一)
366 0
|
Android开发
【Android 应用开发】Paint 渲染 之 BitmapShader 位图渲染 ( 渲染流程 | CLAMP 拉伸最后像素 | REPEAT 重复绘制图片 | MIRROR 绘制反向图片 )(二)
【Android 应用开发】Paint 渲染 之 BitmapShader 位图渲染 ( 渲染流程 | CLAMP 拉伸最后像素 | REPEAT 重复绘制图片 | MIRROR 绘制反向图片 )(二)
247 0
【Android 应用开发】Paint 渲染 之 BitmapShader 位图渲染 ( 渲染流程 | CLAMP 拉伸最后像素 | REPEAT 重复绘制图片 | MIRROR 绘制反向图片 )(二)
PyQt5 技术篇-控件长宽度、高度设置,组件大小设置,组件尺寸查看。
PyQt5 技术篇-控件长宽度、高度设置,组件大小设置,组件尺寸查看。
861 0
|
API
[微信小程序]通过计算其他view的高度,动态给定scroll-view的高度
WXML节点信息API 微信小程序的开发文档有个很重要的api wx.createSelectorQuery() 具体大家还是看一下文档,我下面是直接上代码解说; wx.createSelectorQuery()文档 案例中的布局 这里页面上部分有三个view,它们的class分别是.
7203 0