Android调整单色图像视图的大小以创建灰色像素

Android调整单色图像视图的大小以创建灰色像素,android,imageview,monochrome,Android,Imageview,Monochrome,我有一个单色图像,意思是只有白色和黑色像素。为了覆盖所有dpi文件夹,我制作了多个版本的图像。我使用单色图像,因为我想应用泛光填充算法。 问题在于,在一些设备中,安卓使用的是经过调整大小的图像版本,在缩放时会出现一些灰色像素。为了解决这个问题,我试着校正像素并将灰色转换为白色或黑色,但这需要大量的时间。 是否可以强制android在调整imageview大小时生成单色图像,或者应用快速过滤器重新生成单色图像? 虽然我还没有尝试过,但我是否应该在nodpi文件夹中生成不同版本的图像,并在不缩放的情

我有一个单色图像,意思是只有白色和黑色像素。为了覆盖所有dpi文件夹,我制作了多个版本的图像。我使用单色图像,因为我想应用泛光填充算法。 问题在于,在一些设备中,安卓使用的是经过调整大小的图像版本,在缩放时会出现一些灰色像素。为了解决这个问题,我试着校正像素并将灰色转换为白色或黑色,但这需要大量的时间。 是否可以强制android在调整imageview大小时生成单色图像,或者应用快速过滤器重新生成单色图像?
虽然我还没有尝试过,但我是否应该在nodpi文件夹中生成不同版本的图像,并在不缩放的情况下使用它们,或者使用中心裁剪

您可以加载可绘制位图

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的缩放而产生任何灰色像素

有关更多选项:

  • ,

  • 作为替代方案:您是否可以尝试使用位图并将结果设置为imageview?您的意思是使用可绘制图像而不是imageview?我该怎么做?所有我需要的是一个位图,我从imageview得到!如果我可以直接从图像文件中获取它,我想我已被保存!在4行代码之后,在运行我的算法之前,我需要将图像缩放到屏幕大小,然后将其分配给imageView。如果我不这样做,并在最后一步直接将位图指定给imageView,我不应该得到相同的结果吗?当我应用算法时,我必须有一个与屏幕一样大的位图,因此我必须在可绘制文件夹中调整图像的大小。