Сделайте прозрачный холст поверх растрового изображения - PullRequest
2 голосов
/ 20 августа 2011

У меня есть 2 ImageViews, 1 для Canvas и другое для ImageBackground.

ImageViews имеют размер экрана.

Когда я касаюсь экрана, мне нужно перерисовать холст, как в примере:

    private void reDraw() {
    Display display = getWindowManager().getDefaultDisplay();
    bmOverlay = Bitmap.createBitmap(display.getWidth(), display.getHeight(), oBitmap.getConfig());
    oCanvas = new Canvas(bmOverlay);

    //I need to erase this line
    oCanvas.drawBitmap(bmpBackGround, new Matrix(), null);

    //this code paint some bitmaps on the canvas
    for (ColorBall ball : colorballs) {
        oCanvas.drawBitmap(ball.getBitmap(), ball.getX(), ball.getY(), null);
    }
    //set the canvas on the image view
    getImageView2().setImageBitmap(bmOverlay);

}

Но в этом примере я перерисовываю растровое изображение, когда касаюсь экрана. Мне нужно перерисовать прозрачный холст, потому что мне не нужно перерисовывать растровое изображение на фоне, потому что растровое изображение никогда не меняется. Но если я не перерисовываю растровое изображение, фон остается черным, а растровое изображение остается на обороте. Любая помощь?

1 Ответ

0 голосов
/ 20 августа 2011

Убедитесь, что созданное вами растровое изображение на самом деле прозрачно. Создайте его с помощью конфигурации ARGB_8888 явно. http://developer.android.com/reference/android/graphics/Bitmap.Config.html

И вы можете захотеть переместить создание растрового изображения из метода reDraw и создать его только один раз.

...