android,从资产中读取jpg图像

android,从资产中读取jpg图像,android,Android,我从assets文件夹加载图像,但有一个问题 从资源和资源加载的同一图像的维度-分辨率不同 为了从资产中获取图像,我使用以下方法: AssetManager am=this.getAssets(); try { Bitmap bmp = BitmapFactory.decodeStream(am.open("imgs/a.jpg")); imageViewDraw.setImageBitmap(bmp);

我从assets文件夹加载图像,但有一个问题

从资源和资源加载的同一图像的维度-分辨率不同

为了从资产中获取图像,我使用以下方法:

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缩放图像吗?