Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 擦除位图上的颜色使所有内容变为黑色_Android_Bitmap_Android Imageview_Android Image - Fatal编程技术网

Android 擦除位图上的颜色使所有内容变为黑色

Android 擦除位图上的颜色使所有内容变为黑色,android,bitmap,android-imageview,android-image,Android,Bitmap,Android Imageview,Android Image,我有一个应用程序,其中imageView上有许多层。因此,对于其中一个特定事件,我试图将最上层移除 我试图使用bitmap.eraseColor(Color.TRANSPARENT),但这导致整个位图变黑。我需要执行上述操作,以便下面的层是可见的。有什么方法可以使最上面的层完全透明,或者使用一些绘画和路径进行擦除(我尝试使用带清除模式的绘画,但它也在绘制黑线,而不是擦除顶层)。如果您只是想使其透明,而不是从堆栈中移除使用 ((View)yourBitmap).setVisibility(View

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


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

如果您只是想使其透明,而不是从堆栈中移除使用

((View)yourBitmap).setVisibility(View.INVISIBLE);
如果你想完全移除它,那么使用

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

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

我更感兴趣的是,当我试图使层上的特定像素而不是整个视图透明时,它也会产生另一个问题,因此我想知道为什么橡皮擦颜色无法工作。但是您的问题提到了您想要的要知道“有没有办法让最上面的一层完全透明”
ImageView
是否设置在黑色背景上<代码>位图。擦除颜色(int)用指定的颜色填充位图的像素
。因此,基本上,使ImageView透明(当使用Color.TRANSPARENT时)。也许,您应该查看
Bitmap.setPixels(int[],int,int,int,int,int,int)