我有一张单色的图像,意思是只有白色和黑色像素。为了覆盖所有dpi文件夹,我制作了几个版本的图像。我使用单色图像,因为我想应用floodfill算法。问题是,在一些设备中,android使用调整大小的图像版本,在缩放时会出现一些灰色像素。为了解决这个问题,我尝试校正像素并将灰色转换为白色或黑色,但这需要相当长的时间。是否有可能在调整图像视图大小时强制android生成单色图像,或者应用快速过滤器重新生成单色图像?虽然我还没有尝试过,但我是否应该在nodpi文件夹中生成不同版本的图像,并在不缩放的情况下使用它们,也许可以使用中心裁剪?
您可以将Drawable加载为位图。
final BitmapFactory.Options options = new BitmapFactory.Options();
// Load the bitmap as mutable object
options.inMutable = true;
final Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_image, options);
然后你可以用你的算法操作它,最后你会把结果设置到你的ImageView
imageView.setImageBitmap(bitmap);
这样你就不应该得到任何由Android缩放引起的灰色像素。
更多选项:
- 请参阅此处
- 还有这里