2012-06-17 28 views

回答

2

你可以利用Android的位圖可繪製類與帆布混合,並且儘量在這個片段是這樣的:

public static Drawable mergeImage(Drawable orig, Drawable over, int left, int top) { 
    Bitmap original = ((BitmapDrawable)orig).getBitmap(); 
    Bitmap overlay = ((BitmapDrawable)over).getBitmap(); 
    Bitmap result = Bitmap.createBitmap(original.getWidth(), original.getHeight(), Config.ARGB_8888); 
    Canvas canvas = new Canvas(result); 
    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 

    canvas.drawBitmap(original, 0, 0, paint); 
    canvas.drawBitmap(overlay, left, top, paint); 

    return new BitmapDrawable(result); 
} 

我使用t編碼了一個與「在線狀態」重疊的照片圖像gridview他在線以上。希望它也適用於你。

+1

不要忘記,當你完成他們的位圖回收。這不是嚴格需要,但它確實有助於消耗內存。 :) –

+0

Actully我想添加兩層。 PorterDuffXferMode不添加兩層。 –

0

較普遍的辦法可能是創建你想PorterDuffMode一個PorterDuffXfermode,然後設置它,你與你的畫布上使用,如mthama's answer引用,但用一些線Paint對象。這允許您按需要/需要使用其他Porter-Duff模式。

Paint paint = new Paint(); 
paint.setAntiAlias(true); 
canvas.drawBitmap(original, 0, 0, paint); 
paint.setXferMode(new PorterDuffXferMode(PorterDuff.Mode.OVERLAY)); 
canvas.drawBitmap(overlay, left, top, paint); 

請注意,我沒有試過這個,所以請跟隨mthama的回答。 :)