android,从资产中读取jpg图像
我从assets文件夹加载图像,但有一个问题 从资源和资源加载的同一图像的维度-分辨率不同 为了从资产中获取图像,我使用以下方法:android,从资产中读取jpg图像,android,Android,我从assets文件夹加载图像,但有一个问题 从资源和资源加载的同一图像的维度-分辨率不同 为了从资产中获取图像,我使用以下方法: AssetManager am=this.getAssets(); try { Bitmap bmp = BitmapFactory.decodeStream(am.open("imgs/a.jpg")); imageViewDraw.setImageBitmap(bmp);
AssetManager am=this.getAssets();
try {
Bitmap bmp = BitmapFactory.decodeStream(am.open("imgs/a.jpg"));
imageViewDraw.setImageBitmap(bmp);
} catch (IOException e) {
e.printStackTrace();
}
从R.drawable加载的同一图像的输出和图像上的资源
有人能告诉我为什么以及如何从资产中读取图像,但分辨率应该与R.drawable相同吗
谢谢如果要将位图加载到Imageview,请使用scaleType和adjustViewbounds参数。例如,在XML中:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerInside" />
问题是,当你从assets目录加载图像时,系统不会对你的位图进行任何缩放或处理,相反,当使用drawable文件夹时,android会尝试根据你的设备分辨率缩放你的图像
因此,获得完全相同结果的唯一真正方法是对imageview使用固定大小,理想情况下,应在dps中指定该值,理想情况下,应将该值放在dimens.xml文件中,以便在将位图加载到Imageview时,使用scaleType和adjustViewbounds参数为各种系统配置更改该值。例如,在XML中:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerInside" />
问题是,当你从assets目录加载图像时,系统不会对你的位图进行任何缩放或处理,相反,当使用drawable文件夹时,android会尝试根据你的设备分辨率缩放你的图像
因此,获得完全相同结果的唯一真正方法是为imageview使用固定大小,理想情况下,您应该在dps中指定它,理想情况下,您应该将该值放在dimens.xml文件中,以便您可以为各种系统配置更改该值您需要使用setDrawable,而不是缩放drawable setImageDrawable(新的BitmapDrawable(getContext().getResources(),位图))
这也是为什么不推荐使用另一个不获取getResources()参数的方法的原因,在这种情况下,它将负责缩放 您需要将setDrawable与缩放的drawable一起使用 setImageDrawable(新的BitmapDrawable(getContext().getResources(),位图))
这也是为什么不推荐使用另一个不获取getResources()参数的方法的原因,在这种情况下,它将负责缩放 你确定Android不会从drawable缩放图像吗?你确定Android不会从drawable缩放图像吗?