我正在尝试将一个非常小的图像(大约20x40像素)缩放到任意大小的图像。我通过设置ImageView.scaleType属性来进行缩放,但是它会从一个原始像素颜色渐变到下一个,从而创建一个模糊的大版本图像。
这是问题的一些背景信息。我正在尝试为Android创建一个旧式16位风格的游戏。我希望将精灵/等存储为小文件,然后根据用户的屏幕大小进行缩放。这样,我就不必为每个精灵创建许多不同大小的图像。现在我只是在做一个概念验证,所以我想将一个小的20x40像素的图像文件缩放到整个屏幕的大小。
*编辑:我找到了使用Reflog推荐的方法的方式。然而,它仍然会有一些渐变效果,只是比默认算法少得多。
*编辑2:搞定了!我必须关闭抗锯齿功能
*编辑3:这对我来说神奇地停止工作了,我发现另一个需要禁用抖动/自动缩放的地方。添加了选项行。
这是问题的一些背景信息。我正在尝试为Android创建一个旧式16位风格的游戏。我希望将精灵/等存储为小文件,然后根据用户的屏幕大小进行缩放。这样,我就不必为每个精灵创建许多不同大小的图像。现在我只是在做一个概念验证,所以我想将一个小的20x40像素的图像文件缩放到整个屏幕的大小。
*编辑:我找到了使用Reflog推荐的方法的方式。然而,它仍然会有一些渐变效果,只是比默认算法少得多。
*编辑2:搞定了!我必须关闭抗锯齿功能
*编辑3:这对我来说神奇地停止工作了,我发现另一个需要禁用抖动/自动缩放的地方。添加了选项行。
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
paint.setDither(false);
paint.setAntiAlias(false);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither = false;
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tinyimg, options);
canvas.drawBitmap(bitmap, null, new RectF(getLeft(), getTop(), getRight()/2, getBottom()/2), paint);
}