#java #android #bitmap
#java #Android #растровое изображение
Вопрос:
Я рисую свои растровые изображения на экране с помощью canvas и view. Когда я открываю экран, я получаю серию задержек в позиционировании изображения (почти как если бы я наблюдал, как компьютер медленно думает о том, где разместить точки).
Сначала так:
Затем:
И, наконец,:
Я понимаю, что это сложно с описанием, которое я дал, но если у кого-нибудь есть какие-либо идеи, не могли бы они мне рассказать!
Редактировать:
public class LoseScreen extends View {
@Override protected void onDraw(Canvas canvas) {
paint.setColor(Color.GREEN);
canvas.drawBitmap(box, null, menuBox, null);
menuBox.set(screenWidth / 2 - menuWidth / 2, screenHeight / 2 - menuHeight / 2, menuBox.left menuWidth, menuBox.top menuHeight);
tryagainBounds.set(screenWidth / 2 - tryagainWidth / 2, menuHeight / 2, tryagainBounds.left tryagainWidth, tryagainBounds.top tryagainHeight);
canvas.drawText(" Score:", 100 * density, menuBox.top 150 * density, finalScorePaint);
canvas.drawText(finalScoreString, 225 * density, menuBox.top 150 * density, finalScorePaint);
canvas.drawText("Highscore:", 100 * density, menuBox.top 200 * density, finalScorePaint);
canvas.drawText(HighScore.toString(), 225 * density, menuBox.top 200 * density, finalScorePaint);
canvas.drawBitmap(tryagain, null, tryagainBounds, null);
Комментарии:
1. Пожалуйста, добавьте код, в котором вы рисуете растровые изображения на холсте, иначе помочь невозможно.
2. Загружаете ли вы растровое изображение в основной поток пользовательского интерфейса?
3. Я добавил код, и я не знаю, загружаю ли я его в основной поток пользовательского интерфейса, не уверен, что это значит. У меня есть несколько экранов, которые загружают растровые изображения, если вы это имеете в виду?
Ответ №1:
Трудно точно понять, в чем заключается ваша проблема, не видя никакого кода. Но идея может заключаться в том, чтобы убедиться, что вы используете двойную буферизацию при выводе изображения на экран (http://docs.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html )
Основное описание того, что это делает: выводит изображение с экрана во время его «сборки», а затем перемещает его в представление, когда оно завершено. Однако это не ускорит процесс рисования.