Android: BitmapDrawable.Draw (Canvas) Не работает - PullRequest
8 голосов
/ 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 ]

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

Вы можете использовать BitmapDrawable, но вы должны сначала установить границы, чтобы он знал, сколько листов сделать:

BitmapDrawable background;
background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(),R.drawable.back));

//in this case, you want to tile the entire view
background.setBounds(0, 0, myView.getWidth(), myView.getHeight());

background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
background.draw(canvas);
0 голосов
/ 25 апреля 2012

Вы, вероятно, получаете предупреждения в своем журнале о сбое SKImageDecoder. Если вы создаете ресурс через xml, вам нужно получить его через (BitmapDrawable) getResources().getdrawable(id)

0 голосов
/ 23 февраля 2011

У тебя это задом наперед.Вместо того, чтобы передавать холст вашего представления методу рисования растрового изображения, нарисуйте ваше растровое изображение на холсте представления с помощью Canvas.drawBitmap

...