您好我正在从名为image.png
的png图片创建一个位图。图像的尺寸为75(宽度)×92(高度)。当我运行此代码时:
Bitmap bitmap = BitmapFactory.decodeResource(this.context.getResources(), R.drawable.image
Log.d("image", "height: " + bitmap.getHeight() + " width: " + bitmap.getWidth());
记录器记录:
DEBUG/image(3550): height: 138 width: 113
并且屏幕上的图像比尺寸为75 x 92的其他图像大。我可以做些什么来让Android加载具有正确尺寸的图像?
答案 0 :(得分:21)
我的解决方案:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(this.context.getResources(), R.drawable.image, options );
答案 1 :(得分:12)
听起来您设备上的屏幕密度与创建image.png的密度不同。
如果您确实想要阻止缩放,可以尝试以下方法之一:
将图片放入res / drawable-nodpi(http://developer.android.com/guide/practices/screens_support.html#qualifiers)
使用ImageView.ScaleType.CENTER(http://developer.android.com/reference/android/widget/ImageView.ScaleType.html)
刚刚在SO上发现了这个相关问题:Android: How to stop Android 1.6+ from scaling images
答案 2 :(得分:4)
BitmapFactory中的Beause加载程序在加载期间应用屏幕密度缩放。 要覆盖它,请在调用decodeResource的BitmapFactory.Options中提供自己想要的inTargetDensity。
答案 3 :(得分:0)
位图thumbImage = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.image),640、640,否);