android 位图库中的 getWidth() 函数不是 return 真实图像高度
getWidth() function in bitmap library of android doesn't return true image height
我想使用 android.graphics.Bitmap 库通过我的 android 应用程序加载 .PNG 图像。我已成功加载它,但有些问题我无法解决。
我的图像像素数是 144*144,但是当我尝试使用 getWidth() 函数获取加载图像的宽度时,它 returns 432 即 144*3。
这是我尝试加载图片的方式:
mBitmapIn = loadBitmap(R.drawable.data);
其中loadBitmap函数定义为:
private Bitmap loadBitmap(int resource) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
return BitmapFactory.decodeResource(getResources(), resource, options);
}
如果有人能帮我找出原因,我将不胜感激。
谢谢
drawable
文件夹被认为具有 mdpi
的密度(即基线密度)。 Nexus 5 的密度为 445ppi,属于 xxhdpi
类别。因此,如果您读取 drawable-xxhdpi
目录中不存在的位图,系统将不得不在另一个目录中找到它并对其进行缩放。 xxhdpi
个屏幕的密度大约是 mdpi
个屏幕的 3 倍。由于 res
下唯一可绘制的文件夹是 drawable
本身,android 将其沿两个维度缩放 3 倍
您可以获得更多关于此的信息here
我想使用 android.graphics.Bitmap 库通过我的 android 应用程序加载 .PNG 图像。我已成功加载它,但有些问题我无法解决。
我的图像像素数是 144*144,但是当我尝试使用 getWidth() 函数获取加载图像的宽度时,它 returns 432 即 144*3。
这是我尝试加载图片的方式:
mBitmapIn = loadBitmap(R.drawable.data);
其中loadBitmap函数定义为:
private Bitmap loadBitmap(int resource) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
return BitmapFactory.decodeResource(getResources(), resource, options);
}
如果有人能帮我找出原因,我将不胜感激。
谢谢
drawable
文件夹被认为具有 mdpi
的密度(即基线密度)。 Nexus 5 的密度为 445ppi,属于 xxhdpi
类别。因此,如果您读取 drawable-xxhdpi
目录中不存在的位图,系统将不得不在另一个目录中找到它并对其进行缩放。 xxhdpi
个屏幕的密度大约是 mdpi
个屏幕的 3 倍。由于 res
下唯一可绘制的文件夹是 drawable
本身,android 将其沿两个维度缩放 3 倍
您可以获得更多关于此的信息here