Я использую следующий код для рисования растровых изображений друг над другом.Наложение растровых изображений на холст в Android
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
public class MyView extends View
{
public MyView(Context context)
{
super(context);
}
@Override
protected void onDraw(Canvas canvas)
{
Bitmap bitmap = null;
Resources res = getResources();
Bitmap bitmap1 = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
Bitmap bitmap2 = BitmapFactory.decodeResource(res, R.drawable.ic_launcher2);
bitmap = Bitmap.createBitmap(bitmap1.getWidth() + 200, bitmap1.getHeight() + 200,
Config.ARGB_8888);
canvas.drawBitmap(bitmap1, 0, 0, null);
super.onDraw(canvas);
}
}
}
Следующая строка рисует растровое изображение1 на холсте.
canvas.drawBitmap(bitmap1, 0, 0, null);
Однако, если я использую следующий код, он ничего не рисует. Я понимаю, что это новый холст, но где он будет рисовать тогда?
canvas = new Canvas(bitmap); // Sets background bitmap.
canvas.drawBitmap(bitmap1, 0, 0, null);
Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(bitmap2, 0, 0, paint)
Для существующего объекта холст, я также попытался использовать canvas.setBitmap(bitmap);
, но до сих пор он ничего не рисовал. Любая помощь будет оценена по достоинству. Благодарю.
Почему вы создаете новый «Холст»? Что такое 'c'? – tachyonflux
ouch. c была опечаткой. Я отредактировал его, чтобы показать холст. Я не знаю, как установить «растровое изображение» для фона, поэтому я попытался создать новый объект canvas. Я также попытался установить canvas.setBitmap (bitmap), но он все равно ничего не рисует. –
Я не понимаю, в чем проблема. Что случилось с 'drawBitmap'? – tachyonflux