2016-11-24 76 views
1

有没有方法将位图叠加到XML可绘制的形状上?我想把一个图标放在椭圆形的上面。可绘制XML叠加形状

+1

是的,有。使用LayerDrawable。 –

+0

不,你不能在XML中这样做,使用'RoundedBitmapDrawable'或类似的'Drawable'代替 – pskink

+0

@pskink所以,[this](https://developer.android.com/guide/topics/resources/drawable-resource.html #LayerList)是完全错误的,*在你看来*?当然,**可以**在LayerDrawable中混合xml drawable和位图。 –

回答

0
public static Bitmap overlayBitmapToCenter(Bitmap bitmap1, Bitmap bitmap2) { 
    int bitmap1Width = bitmap1.getWidth(); 
    int bitmap1Height = bitmap1.getHeight(); 
    int bitmap2Width = bitmap2.getWidth(); 
    int bitmap2Height = bitmap2.getHeight(); 

    float marginLeft = (float) (bitmap1Width * 0.5 - bitmap2Width * 0.5); 
    float marginTop = (float) (bitmap1Height * 0.5 - bitmap2Height * 0.5); 

    Bitmap overlayBitmap = Bitmap.createBitmap(bitmap1Width, bitmap1Height, bitmap1.getConfig()); 
    Canvas canvas = new Canvas(overlayBitmap); 
    canvas.drawBitmap(bitmap1, new Matrix(), null); 
    canvas.drawBitmap(bitmap2, marginLeft, marginTop, null); 
    return overlayBitmap; 
}