2016-03-23 33 views
0

我有一个图像是单色的,意味着只有白色和黑色像素。为了覆盖所有的dpi文件夹,我制作了多个版本的图像。我正在使用单色图像,因为我想应用填充算法。 问题是,在某些设备中,android使用图像的大小调整版本,缩放时有一些灰色像素。为了解决这个问题,我尝试纠正像素并将灰色转换为白色或黑色,但这需要花费大量时间。 是否有可能迫使android在生成单色图像的同时调整图像视图的大小或应用快速过滤器来重新生成单色图像? 虽然我还没有尝试过,我应该在nodpi文件夹中生成不同版本的图像,并且可以在不缩放的情况下使用它们,也许使用中心裁剪?Android调整大小单色imageview创建灰色像素

+0

作为替代方案:您可以尝试使用位图并将结果设置为imageview? – Christopher

+0

你的意思是使用可绘制图像而不是imageview?我怎样才能做到这一点?我需要的只是一张从imageview中获得的位图!如果我可以直接从图像文件中获得它,我想我已经得救了! – George

回答

0

您可以将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的缩放任何灰色像素。

更多选项:

  1. See here
  2. And here
+0

在4行代码之后,在运行我的算法之前,我需要将图像缩放到屏幕大小,然后将其分配给imageView。如果我不这样做,并在最后一步直接将位图分配给imageView,我不应该得到相同的结果吗?当我应用算法时,我必须有一个与屏幕一样大的位图,所以我必须调整可绘制文件夹中的图像大小。 – George