2013-07-29 79 views
2

我有兩個重疊的圖像瀏覽。我希望一個保持不變,而另一個完全透明。我正在使用畫布繪製透明圖片,但我無法獲得透明位圖。我該如何糾正這一點?透明位圖是黑色的

當我使用bitmap.eraseColor(color)將其顏色設置爲更接近透明顏色(通過減少Alpha通道)時,它變得越來越接近黑色。當我將它設置爲bm.eraseColor(Color.Transparent)時,它看起來完全是黑色的。包含位圖的imageview具有透明背景,所以我可以從黑色位圖(應該是透明的)的外部顯示它。

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> 

回答

2

您需要eraseColor之前調用setHasAlpha

+0

此方法setHasAlpha添加在API 12中,是否有任何替代API 8 ... 由於進程延遲,我無法檢查每個像素的alpha ... – Prakash