Рисовать растровые изображения из ресурсов над другим

У меня есть два растровых изображения,background а такжеforeground, Как нарисовать растровый передний план на фоне, не используя другой холст?

Решение:

1) Сначала создайте растровые изображения из ресурсов с дополнительной опцией ARGB_8888

BitmapFactory.Options options = new BitmapFactory.Options();  
options.inPreferredConfig = Bitmap.Config.ARGB_8888;

2) Объявить растровые изображения

Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.background, options);  
Bitmap foreground = BitmapFactory.decodeResource(getResources(), R.drawable.foreground, options);

3) Внутри onDraw () функция рисования графики

protected void onDraw(Canvas canvas)    
{  
    canvas.drawColor(Color.White);

    Paint paint = new Paint();
    canvas.drawBitmap(background, 0, 0, paint);
    paint.setXfermode( new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
    canvas.drawBitmap(foreground, 0, 0, paint); 
}

И, как сказал Соксех, это очень хороший источник информации:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html

 IgorGanapolsky02 мар. 2016 г., 21:55
Так работает ли это решение, или вы задали вопрос?

Ответы на вопрос(2)

вы можете установить первое растровое изображение в качестве фона, а второе - в качестве источника изображения.

<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/background"
    android:src="@drawable/foreground"/>
 02 мар. 2016 г., 20:29
Что если не использовать ImageView?
 03 мар. 2016 г., 09:45
- В FrameLayout вы можете указать передний план через setForeground (). - Вы также можете использовать LayerDrawable, чтобы поместить несколько рисунков друг на друга. - Остальное просто с подходом Эрика.
Решение Вопроса

canvas.drawBitmap(backgroundImageBitmap, 0.0f, 0.0f, null);
canvas.drawBitmap(foregroundImageBitmap, 0.0f, 0.0f, null);

Второе изображение (изображение переднего плана) должно иметь альфа-аспекты, или вы не можете видеть сквозь него.

 Kris10 июн. 2012 г., 15:46
Спасибо! Наконец-то это работает!
 09 июн. 2012 г., 21:46
Когда вы создаете растровое изображение, присвойте ему параметр RGBA_8888, затем нарисуйте его как обычно (не устанавливайте цвет фона). УвидетьBitmap.Config. This example может также дать вам несколько идей.
 02 мар. 2016 г., 21:58
Почему вы поставляетеnull вместо рисовать экземпляр?
 Kris09 июн. 2012 г., 21:31
Как установить в Android эти альфа-аспекты растрового изображения переднего плана?
 02 мар. 2016 г., 22:00
@IgorGanapolsky Вам не нужно указывать краску при рисовании растрового изображения. Это необязательный аргумент.

Ваш ответ на вопрос