0
看來,BitmapFactory.decodeResource()被忽略inScaled時inJustDecodeBounds也是 「真」。BitmapFactory.decodeResource()忽略inScaled
在這種剪斷的代碼:
Resources res = getResources();
DisplayMetrics metrics = res.getDisplayMetrics();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = true;
options.inDensity = DisplayMetrics.DENSITY_HIGH; // resolution of bitmap in resources
options.inTargetDensity = metrics.densityDpi; // screen resolution
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeResource (res, srcId, options);
logD ("IVH decodeBitmapResource.1: " + options.outWidth + "," + options.outHeight + " - " + srcId);
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeResource (getResources(), srcId, options);
logD ("IVH decodeBitmapResource.2: " + options.outWidth + "," + options.outHeight + " - " + srcId);
我得到了我的日誌文件的輸出如下:
IVH decodeBitmapResource.1: 420,747 - 2130837613
IVH decodeBitmapResource.2: 840,1494 - 2130837613
我所做的只是改變inJustDecodeBounds從真爲假。我錯過了什麼?
你說「應該」,但我沒有看到它在Javadoc。所以,這無論是在文檔或缺陷在平臺中的錯誤,但我們不知道哪一個。 –
好吧,讓我把我的「諷刺」的帽子。在我看來,很多谷歌的Android文檔都給你的想象留下了很多語義細節。 –
你是對的。這就是爲什麼他們讓你提交bug:https://code.google.com/p/android/issues/entry?template=Developer%20Documentation –