Android 为什么SampleSize中的BitmapFactory.Options不';有时不能四舍五入到最接近的2次方吗?
正如官方文件所说,“但是今天我做了一个测试,发现有一些不同之处,下面是我的测试代码:Android 为什么SampleSize中的BitmapFactory.Options不';有时不能四舍五入到最接近的2次方吗?,android,android-bitmap,Android,Android Bitmap,正如官方文件所说,“但是今天我做了一个测试,发现有一些不同之处,下面是我的测试代码: BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource(getResources(), R.drawable.image, options); int w = options.outWidth; int h = opti
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.image, options);
int w = options.outWidth;
int h = options.outHeight;
Log.i("Log", "originW: " + w + " originH: " + h);
for (int i = 0; i < 16; i++) {
BitmapFactory.Options scaleOption = new BitmapFactory.Options();
scaleOption.inSampleSize = i;
scaleOption.inScaled=false;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image, scaleOption);
double rw = (w * 1.0 / bitmap.getWidth());
double rh = (h * 1.0 / bitmap.getHeight());
DecimalFormat format = new DecimalFormat("0.00");
Log.i("Log", "width: \t" + bitmap.getWidth() +'\t'+ " height: \t" + bitmap.getHeight() +'\t'+
" originW/scaleH: \t" + format.format(rw) +'\t'+ " originH/scaleH: \t" + format.format(rh) +'\t'+ " inSampleSize: \t" + i);
}
所以任何人都知道问题出在哪里?也许他们改变了行为,没有更新文档。这不是第一次。你在测试什么版本的Android?”但今天我做了一个测试,发现有一些不同之处,下面是我的测试代码“您是否有与此不同的另一天的测试日志记录?当
scaleOption.inScaled=true时,您是否得到了预期的结果代码>?@commonware,我在Android 4.2上测试了它。2@peteyscaleOption.inScaled的值对密度的缩放与否很重要,u可以忽略它。问题发生在不同的图像上,对于一些图像,代码的输出是好的,但是有些不是,这让我很困惑,希望能得到一些解释方面的帮助。
I/Log: width: 2247 height: 1264 originW/scaleH: 1.00 originH/scaleH: 1.00 inSampleSize: 0
I/Log: width: 2247 height: 1264 originW/scaleH: 1.00 originH/scaleH: 1.00 inSampleSize: 1
I/Log: width: 1123 height: 632 originW/scaleH: 2.00 originH/scaleH: 2.00 inSampleSize: 2
I/Log: width: 749 height: 421 originW/scaleH: 3.00 originH/scaleH: 3.00 inSampleSize: 3
I/Log: width: 561 height: 316 originW/scaleH: 4.01 originH/scaleH: 4.00 inSampleSize: 4
I/Log: width: 449 height: 252 originW/scaleH: 5.00 originH/scaleH: 5.02 inSampleSize: 5
I/Log: width: 374 height: 210 originW/scaleH: 6.01 originH/scaleH: 6.02 inSampleSize: 6
I/Log: width: 321 height: 180 originW/scaleH: 7.00 originH/scaleH: 7.02 inSampleSize: 7
I/Log: width: 280 height: 158 originW/scaleH: 8.02 originH/scaleH: 8.00 inSampleSize: 8
I/Log: width: 249 height: 140 originW/scaleH: 9.02 originH/scaleH: 9.03 inSampleSize: 9
I/Log: width: 224 height: 126 originW/scaleH: 10.03 originH/scaleH: 10.03 inSampleSize: 10
I/Log: width: 204 height: 114 originW/scaleH: 11.01 originH/scaleH: 11.09 inSampleSize: 11
I/Log: width: 187 height: 105 originW/scaleH: 12.02 originH/scaleH: 12.04 inSampleSize: 12
I/Log: width: 172 height: 97 originW/scaleH: 13.06 originH/scaleH: 13.03 inSampleSize: 13
I/Log: width: 160 height: 90 originW/scaleH: 14.04 originH/scaleH: 14.04 inSampleSize: 14
I/Log: width: 149 height: 84 originW/scaleH: 15.08 originH/scaleH: 15.05 inSampleSize: 15