【问题标题】:Android resizes monochrome imageview creating grey pixelsAndroid 调整单色图像视图的大小,创建灰色像素
【发布时间】:2016-03-23 10:18:36
【问题描述】:

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

【问题讨论】:

  • 作为替代方案:您能否尝试使用位图并将结果设置为图像视图?
  • 您的意思是使用可绘制图像而不是图像视图?我怎样才能做到这一点?我所需要的只是从图像视图中获取的位图!如果能直接从图片文件中获取,我想我就得救了!

标签: android imageview monochrome


【解决方案1】:

您可以将 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 Scaling 引起的灰色像素。

更多选项:

  1. See here,
  2. And here

【讨论】:

  • 在 4 行代码之后,在运行我的算法之前,我需要将图像缩放到屏幕大小,然后将其分配给 imageView。如果我不这样做并在最后一步将位图直接分配给 imageView,我不应该得到相同的结果吗?当我应用算法时,我必须有一个与屏幕一样大的位图,因此我必须调整可绘制文件夹中的图像大小。
猜你喜欢
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 2011-09-22
  • 2019-09-01
相关资源
最近更新 更多