Android: BitmapDrawable.Draw (Canvas) Не работает - PullRequest
3 голосов
/ 23 февраля 2011

Я пытаюсь наложить фон 20x20 на свой пользовательский вид, но по какой-то причине я тоже не могу.

    BitmapDrawable background;
    background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.back));
    background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    background.draw(canvas);

У кого-нибудь есть идея, почему она не работает?

Ответы [ 3 ]

6 голосов
/ 13 марта 2011

Не устанавливайте границы для размера плитки: установите для них общую площадь для плитки. В вашем случае:

background.setBounds(0, 0, myView.getWidth(), myView.getHeight());
2 голосов
/ 23 февраля 2011

Вы забыли дать свои нарисованные границы. Вам нужно вызвать drawable.setBounds () хотя бы один раз перед его рисованием.

1 голос
/ 20 августа 2012

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

//background
    Bitmap _back_bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.background); 
    BitmapDrawable backTiled = new BitmapDrawable(_back_bmp);
    backTiled.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    backTiled.setBounds(0, 0, this.getWidth(), this.getHeight());
    this.back_bmp = backTiled.getTileModeX();
    this.setBackgroundDrawable(backTiled);

Но у меня сейчас своя собственная проблема. Ничего нельзя нарисовать на холсте?

...