android获取图⽚尺⼨的两种⽅式及bitmap的缩放操作我就废话不多说了,⼤家还是直接看代码吧~
//Uri.parse("file://"+Image().getCompressPath()))
String Path();
Log.e("图⽚路径",path+"");
SpannableString spannableString=new SpannableString(path);
//⽅法⼀:通过uri把图⽚转化为bitmap的⽅法
Bitmap bitmap= BitmapFactory.decodeFile(path);
int height= Height();
int width= Width();
Log.e("通过bitmap获取到的图⽚⼤⼩","width:"+width+"height"+height);
//⽅法⼆:使⽤Options类来获取
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;//这个参数设置为true才有效,
Bitmap bmp = BitmapFactory.decodeFile(path, options);//这⾥的bitmap是个空
if(bmp==null){
Log.e("通过options获取到的bitmap为空","===");
}
int outHeight=options.outHeight;
int outWidth= options.outWidth;
Log.e("通过Options获取到的图⽚⼤⼩","width:"+outWidth+"height"+outHeight);
关于两种⽅法:
第⼀种:直接把bitmap加载到内存中,通过对bitmap的测量,得出宽⾼,由于这个⽅法直接把图⽚引⼊内存,如果图⽚过⼤,将会引发OOM;
第⼆种:bitmap.options类为bitmap的裁剪类,通过他可以实现bitmap的裁剪;如果不设置裁剪后的宽⾼和裁剪⽐例,返回的bitmap对象将为空,但是这个对象存储了原bitmap的宽⾼信息。
打log输出信息如下:
缩放:
Bitmap bitmap=null;
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize=2;
options.inJustDecodeBounds = false;
weight的几种形式if(path.equals("a1")){
bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.a1,options);
inSampleSize表⽰缩放⽐例
补充知识:android获取Bitmap对象,获取图⽚宽⾼
android在不加载图⽚的前提下获得图⽚的宽⾼
public static int[] getImageWidthHeight(String path){
BitmapFactory.Options options = new BitmapFactory.Options();
/**
* 最关键在此,把options.inJustDecodeBounds = true;
* 这⾥再decodeFile(),返回的bitmap为空,但此时调⽤options.outHeight时,已经包含了图⽚的⾼了
*/
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(path, options); // 此时返回的bitmap为null
/
**
*options.outHeight为原始图⽚的⾼
*/
return new int[]{options.outWidth,options.outHeight};
}
通过BitmapFactory从不同位置获取Bitmap
1.资源⽂件(drawable/mipmap/raw)
BitmapFactory.decodeResource(getResources(), R.mipmap.slim_lose_weight_plan_copenhagen,options);
2.资源⽂件(assets)
InputStream is = getActivity().getAssets().open("bitmap.png");
BitmapFactory.decodeStream(is);
3.内存卡⽂件
bitmap = BitmapFactory.decodeFile("/sdcard/bitmap.png");
4.⽹络⽂件
bitmap = BitmapFactory.decodeStream(is);
可根据BitmapFactory获取图⽚时传⼊option,通过上述⽅法获取图⽚的宽⾼
以上这篇android获取图⽚尺⼨的两种⽅式及bitmap的缩放操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。