透明位图是黑色的

时间:2013-07-29 18:26:07

标签: android bitmap transparency

我有两个重叠的图像视图。我希望一个保持不变,而另一个完全透明。我用画布绘制到透明的,但我无法获得透明的位图。我怎么能纠正这个?

当我使用bitmap.eraseColor(color)将其颜色设置为更接近透明色(通过缩小Alpha通道)时,它变得越来越接近黑色。当我将其设置为bm.eraseColor(Color.Transparent)时,它显示为完全黑色。包含位图的图像视图具有透明背景,因此我可以从黑色位图的外部显示它(它应该是透明的)。

bm.add(decodeSampledBitmapFromResource(
    getIntent().getExtras().getString("filePath"),
    iv.getHeight(), iv.getWidth()).copy(
        Bitmap.Config.ARGB_8888, true));

    scaleBitmap();

    originalImage.setImageBitmap(bm.get(N).copy(
        Bitmap.Config.ARGB_8888, false));

    bm.get(N).eraseColor(Color.TRANSPARENT);
    iv.setImageBitmap(bm.get(N));

以下是布局代码的相关部分:

<RelativeLayout
    android:id="@+id/myImages"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="6"
     >

    <ImageView
        android:id="@+id/originalImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:scaleType="centerInside"
        android:visibility="visible" />

    <com.abacus.colorsketch.MyImageView
        android:id="@+id/workingImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/transparent"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:scaleType="centerInside" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

您需要在setHasAlpha之前致电eraseColor