Как я могу повторить растровое изображение на android в java?

Приветствую вас, коллеги-программисты, я хочу повторить мое растровое изображение вертикально на Android в Java. Я сейчас делаю игру для платформы Android, такой как Mario, и растровое изображение, которое является моим фоном, нужно повторить по оси X. Растровое изображение слишком велико для моего экрана, поэтому я рисую только половину экрана устройства. Я перемещаю свой фон назад на каждой итерации в моем методе рисования, как показано ниже;

bgSrcX[0] += 20;
bgSrcX2[0] += 20;   
bgSrc[0].set(bgSrcX[0], 0, bgSrcX2[0], bg[0].getHeight());    
canvas.drawBitmap(tileMe.getBitmap(), bgSrc[0], bgDst[0], null);   

Буду очень признателен, если вы, ребята и дамы, сможете мне помочь. Заранее спасибо.

0
0
192
1

Ответы 1

Вы пробовали BitmapDrawable?

Bitmap bitmap = getYourBitmap();
BitmapDrawable drawable = new BitmapDrawable(bitmap);
drawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
someView.setBackground(drawable);

Я рисую свои растровые изображения с помощью Canvas. У меня нет просмотров моей игры: /

Yekta Sarıoğlu 11.04.2018 14:00

@ YektaSarıoğlu Вы также можете установить это растровое изображение прямо на свой холст, а не устанавливать его в качестве фона для некоторого вида.

Totumus Maximus 11.04.2018 14:09

Я использовал свой единственный макет и вызвал ошибку из-за привилегий потока, как показано ниже. android.view.ViewRootImpl $ CalledFromWrongThreadException: только исходный поток, создавший иерархию представлений, может касаться его представлений. Это не решило мою проблему, но все равно спасибо :)

Yekta Sarıoğlu 11.04.2018 23:53

@ YektaSarıoğlu Если это ваша проблема, пробовали ли вы запустить ее в UIThread с помощью runOnUiThread (new Runnable () {}); функция?

Totumus Maximus 12.04.2018 09:30

Другие вопросы по теме