【问题标题】:eraseColor on bitmap makes everything black位图上的擦除颜色使一切变黑
【发布时间】:2013-08-17 09:48:36
【问题描述】:

我有一个应用程序,其中 imageView 上有很多层。因此,对于特定事件之一,我试图移除最上层。

我试图使用bitmap.eraseColor(Color.TRANSPARENT) 但这会导致位图完全变黑。我需要执行上述操作,以便下面的图层可见。有什么办法可以使最上层完全透明或使用一些油漆和路径擦除(我尝试使用具有清晰模式的油漆,但它也在绘制黑线而不是擦除顶层)。

【问题讨论】:

  • ImageView 是否设置在黑色背景上? Bitmap.eraseColor(int) fills the bitmap's pixels with the specified Color。因此,基本上,使 ImageView 透明(使用 Color.TRANSPARENT 时)。也许,你应该看看Bitmap.setPixels(int[], int, int, int, int, int, int)

标签: android bitmap android-imageview android-image


【解决方案1】:

如果你只是想让它透明而不是从堆栈中删除,请使用

((View)yourBitmap).setVisibility(View.INVISIBLE);

如果你想完全删除它,那么使用;

((View)yourBitmap).setVisibility(View.GONE)

如果您不再使用该位图,我建议您使用后者,因为它会从堆栈中删除位图,您的渲染中不会有额外的Bitmap 绘图,它也会提高性能。

【讨论】:

  • 我更想知道为什么 eraseColor 不起作用,因为当我尝试使图层上的特定像素而不是整个视图透明时,它还会产生另一个问题。
  • 但你的问题提到你想知道“有什么办法可以让最上层完全透明”,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
相关资源
最近更新 更多