Приветствую вас, коллеги-программисты, я хочу повторить мое растровое изображение вертикально на 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);
Буду очень признателен, если вы, ребята и дамы, сможете мне помочь. Заранее спасибо.
Вы пробовали BitmapDrawable?
Bitmap bitmap = getYourBitmap();
BitmapDrawable drawable = new BitmapDrawable(bitmap);
drawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
someView.setBackground(drawable);
@ YektaSarıoğlu Вы также можете установить это растровое изображение прямо на свой холст, а не устанавливать его в качестве фона для некоторого вида.
Я использовал свой единственный макет и вызвал ошибку из-за привилегий потока, как показано ниже. android.view.ViewRootImpl $ CalledFromWrongThreadException: только исходный поток, создавший иерархию представлений, может касаться его представлений. Это не решило мою проблему, но все равно спасибо :)
@ YektaSarıoğlu Если это ваша проблема, пробовали ли вы запустить ее в UIThread с помощью runOnUiThread (new Runnable () {}); функция?
Я рисую свои растровые изображения с помощью Canvas. У меня нет просмотров моей игры: /