我就废话不多说了,大家还是直接看代码吧~
//Uri.parse(“文件://? result.getImage () .getCompressPath ())) 字符串路径=uri.getPath (); Log.e(“图片路径”,路径+ " "); SpannableString SpannableString=new SpannableString(路径);//方法一:通过uri把图片转化为位图的方法 位图的位图=BitmapFactory.decodeFile(路径); int高度=bitmap.getHeight (); int宽度=bitmap.getWidth (); Log.e(“通过位图获取到的图片大小”,“宽度:”+宽度+“高度”+高度);//方法二:使用期权类来获取 BitmapFactory。选择选项=new BitmapFactory.Options (); 选项。inJustDecodeBounds=true;//这个参数设置为真实才有效, 位图bmp=BitmapFactory.decodeFile(道路、期权);//这里的位图是个空 如果(bmp==null) { Log.e(“通过期权获取到的位图为空","==="); } int outHeight=options.outHeight; int outWidth=options.outWidth; Log.e(“通过期权获取到的图片大小”,“宽度:”+ outWidth +“高度”+ outHeight);
<>强关于两种方法:强>
<强> 强>直接把位图加载到内存中,通过对图的测量,得出宽高,由于这个方法直接把图片引入内存,如果图片过大,将会引发伯父;
: bitmap.options类为位图的裁剪类,通过他可以实现位图的裁剪;如果不设置裁剪后的宽高和裁剪比例,返回的位图对象将为空,但是这个对象存储了原位图的宽高信息。
打日志输出信息如下:
缩放:
位图的位图=零; BitmapFactory。选择选项=new BitmapFactory.Options (); options.inSampleSize=2; 选项。inJustDecodeBounds=false; 如果(path.equals (" a1 ")) { 位图=BitmapFactory.decodeResource (getresource ()、R.drawable.a1选项);
inSampleSize表示缩放比例
<强> android获取位图对象,获取图片宽高强>
android在不加载图片的前提下获得图片的宽高
公共静态int [] getImageWidthHeight (String路径){ BitmapFactory。选择选项=new BitmapFactory.Options ();/* * *最关键在此,把选项。inJustDecodeBounds=true; *这里再decodeFile(),返回的位图为空,但此时调用options.outHeight时,已经包含了图片的高了 */选项。inJustDecodeBounds=true; 位图的位图=BitmapFactory.decodeFile(路径,选择);//此时返回的位图为null/* * * options.outHeight为原始图片的高 */返回新int [] {options.outWidth, options.outHeight}; } >之前<强>通过BitmapFactory从不同位置获取位图强>
1。资源文件(可拉的/产生/原材料)
BitmapFactory.decodeResource (getresource (), R.mipmap.slim_lose_weight_plan_copenhagen,选项),
引用>2。资源文件(资产)
InputStream是=getActivity () .getAssets () .open (“bitmap.png”);
BitmapFactory.decodeStream(是);
引用>3。内存卡文件
位图=BitmapFactory.decodeFile (“/sdcard/bitmap.png”);
引用>4。网络文件
位图=BitmapFactory.decodeStream(是);
引用>可根据BitmapFactory获取图片时传入选项,通过上述方法获取图片的宽高
以上这篇android获取图片尺寸的两种方式及位图的缩放操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
android获取图片尺寸的两种方式及位图的缩放操作