Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么SampleSize中的BitmapFactory.Options不';有时不能四舍五入到最接近的2次方吗?_Android_Android Bitmap - Fatal编程技术网

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