当bitmap的宽大于ImageView显示控件的宽度时,如果不对ImageView的宽高重新计算,那么Imageview的高度就会超过显示图片的高度,用户体验将会很差,所以我们需要重新计算显示控件的宽高,这里我们假定ImageView的最大宽度为屏幕的宽度。利用下面这个工具类就可以很好解决问题了:
public static LinearLayout.LayoutParams getLayoutParams(Bitmap bitmap,int screenWidth){
float rawWidth = bitmap.getWidth();
float rawHeight = bitmap.getHeight();
float width = 0;
float height = 0;
Log.i("hello", "原始图片高度:"+rawHeight+"原始图片宽度:"+rawWidth);
Log.i("hello", "原始高宽比:"+(rawHeight/rawWidth));
if(rawWidth > screenWidth){
height = (rawHeight/rawWidth)*screenWidth;
width = screenWidth;
}else{
width = rawWidth;
height = rawHeight;
}
Log.i("hello", "处理后图片高度:"+height+"处理后图片宽度:"+width);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams((int)width, (int)height);
return layoutParams;
}
将得到的LayoutParams直接设置给显示控件就ok了。
分享到:
相关推荐
onCreate中获取图片的宽度和高度失败!采用其他方法,比如BitmapFactory。
android 动态旋转图片 Bitmap与Matrix旋转ImageView
裁剪图片,通过imageView显示,调用intent
这个文件是从某个个网站代码和QQ中参考病结合在一起的,只要在gridview的adapter中使用imageview.getBitmapByUrl就可以获取图片了。不必担心 实现原理也相对简单,imageview获取图片的顺序依次为缓存->文件->从网上...
如果ImageView类型是圆形,则强制设置view的宽高一致,取宽高的较小值,按照bitmap的宽高,以及view的宽高,计算缩放比例;因为设置的src宽高,比例可能和imageview的宽高比例不同,这里我们不希望图片失真;如果...
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分 显示 CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长 (宽) CENTER_...
android ImageView网络图片加载、动态设置尺寸、圆角(绝对好用)
Android中ImageView实现平铺多张图片Android中实现平铺图片有两种方式:在drawable中定义平铺的Bitmap然后在ImageView中引
android中对Bitmap图片设置任意角为圆角
有时候需要获取网络图片的宽高来设置图片显示的大小,很多人会直接利用Glide的加载监听去拿图片的宽高,但是这样拿到的不是图片真正的宽高,而是图片显示在ImageView后的宽高。如下: //获取图片显示在ImageView后...
这个可以实现ImageView异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画。解决了:1. listview加载oom问题 2. listview加载时卡顿的现象 3. listview加载时item中图片重复错位等情况 可以...
归纳总结: 1. 从缓存中读取图片:先从内存缓存中读取。 若是从内存中读取到的Bitmap为空,则在磁盘缓存中读取。...计算合适比例,读取适屏的bitmap 4.检查ImageView与任务线程的一致性 5.最后Hanlder更新UI
原因是,wrap_content是根据图片的尺寸,图片尺寸比手机尺寸大,所以宽度已经出屏幕了,虽然真正的显示的图片没有出屏幕,但是Imageview的宽度就出去了,所以Imamgeview的宽度也跟着变高了,所以才会出现上下两层...
为了用户体验更多,Android 自定义ImageView显示圆形,矩形,椭圆通过自定义ImageView来实现,首先获取到图片的Bitmap,然后通过Paint和onDraw()进行圆形图片显示。
安卓的图片工具类,可处理Bitmap和ImageView对象,实现了以下功能: 1.saveBitmap: 把Bitmap对象持久存储到SD卡或手机内存. 2.getViewBitmap: 从view得到bitmap对象 3.addWatermark: Bitmap加水印 4.zoomBitmap: 放大...
Android、Matrix、ImageView、Bitmap结合使用
本类库可以对ImageView,View Background,Drawable和Bitmap添加风格与设置亮度、对比度
Android高级应用源码-很多项目中用到了用户头像,但是系统的ImageView 是四方形的 ,自己写了个处理的方法, 把bitmap处理成圆角的 。很方便.zip
注意: DEMO里图片的URL需要更换成你需要下载的URL, 否则我使用...此DEMO实现了将网络服务器上的TIFF或TIF格式的图片下载到本地, 然后转换成BITMAP, 再使用相关VIEW显示出来, 可以是imageview, photoview等.看自己需求.
很多项目中用到了用户头像,但是系统的ImageView 是四方形的 ,自己写了个处理的方法, 把bitmap处理成圆角的