1.获取资源文件中图片的大小,最简单的最直接的方法,就是使用Drawable的getIntrinsicHeight()和getIntrinsicWidth();
2.利用Bitmap来获取其大小,本质上和第一种方式没什么区别:
/**
* 计算ImageView的大小(BitmapDrawable)
*
* @param resources
* @param resourceId
* @return
*/
public static int[] computeWH(Resources resources, int resourceId) {
int[] wh = { 0, 0 };
if (resources == null)
return wh;
Bitmap mBitmap = BitmapFactory.decodeResource(resources, resourceId);
BitmapDrawable bDrawable = new BitmapDrawable(resources, mBitmap);
wh[0] = bDrawable.getIntrinsicWidth();
wh[1] = bDrawable.getIntrinsicHeight();
return wh;
}
3.可以利用BitmapFactory.Options的outWidth和outHeight两个参数获取其大小,下面给出简单的3种方法供参考:
注意:设置inJustDecodeBounds为true后,decodeFile并不分配空间,即,BitmapFactory解码出来的Bitmap为Null,但可计算出原始图片的长度和宽度。
/**
* 计算ImageView的大小(decodeFileDescriptor)
*
* @param imageFile
* @return
*/
public static int[] computeWH_1(String imageFile) {
int[] wh = { 0, 0 };
if (imageFile == null || imageFile.length() == 0)
return wh;
try {
FileDescriptor fd = new FileInputStream(imageFile).getFD();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
options.inJustDecodeBounds = true;
BitmapFactory.decodeFileDescriptor(fd, null, options);
if (options.mCancel || options.outWidth == -1
|| options.outHeight == -1) {
return wh;
}
wh[0] = options.outWidth;
wh[1] = options.outHeight;
} catch (Exception e) {
}
return wh;
}
/**
* 计算ImageView的大小(decodeFile)
*
* @param imgFile
* @return
*/
public static int[] computeWH_2(String imgFile) {
int[] wh = { 0, 0 };
if (imgFile == null || imgFile.length() == 0)
return wh;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imgFile, options);
if (options.mCancel || options.outWidth == -1
|| options.outHeight == -1) {
return wh;
}
wh[0] = options.outWidth;
wh[1] = options.outHeight;
return wh;
}
/**
* 计算ImageView的大小(decodeResource)
*
* @param resources
* @param resourceId
* @return
*/
public static int[] computeWH_3(Resources resources, int resourceId) {
int[] wh = { 0, 0 };
if (resources == null)
return wh;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(resources, resourceId, options);
if (options.mCancel || options.outWidth == -1
|| options.outHeight == -1) {
return wh;
}
wh[0] = options.outWidth;
wh[1] = options.outHeight;
return wh;
}
分享到:
相关推荐
android 将Imageview 将view生成图片后保存到本地相册的实现生成图片后保存到本地相册的实现,android 将Imageview生成图片后保存到本地相册的实现 android 将Imageview生成图片后保存到本地相册的实现, 有需要的朋友...
android 圆形imageview实现 带自定定义大小 http://blog.csdn.net/u010386438/article/details/17356421
android自定义ImageView实现旋转动画
Android ImageView点击选中后添加边框,详细内容可以到我的博客www.heimizhou.com中了解。
android自定义ImageView,圆角和圆形,抗锯齿.亲测可用。直接拷贝代码就行。
android ImageView网络图片加载、动态设置尺寸、圆角(绝对好用)
Android中ImageView实现平铺多张图片Android中实现平铺图片有两种方式:在drawable中定义平铺的Bitmap然后在ImageView中引
Android 圆形ImageView 源码Demo,欢迎访问我的博客,上面有文章介绍: http://blog.csdn.net/yayun0516
Android平台ImageView拖拽实例,点击ImageView,可随着随着触摸轨迹随意移动,绝对超值。
用于android的Imageview缩放库
android自定义ImageView实现缩放,回弹效果。
Android中ImageView的常用方法一览.pdf 学习资料 复习资料 教学资源
在imageview上的指定位置添加另一个iamgeview,并实现等比例缩放,图片自适应
android自定义ImageView,简单的一个自定义View的demo,该view有圆形和圆角矩形两种。
Xamarin Android Circle ImageView 圆形图片实现,完美实现,拿来即可用
android ImageView网络图片加载、动态设置尺寸、圆角..
android 组件imageview应用,小程序,简单应用
android 圆形 imageview
Android ImageView 宽度设定,高度按比例缩放
android 自定义属性实现 ImageView 透明度渐变效果