Я новичок в Android и у меня возникают проблемы понимания концепции так в основном это то, что я хочу сделать, чтобы лучше понять его ..Android OnDraw()
Я создал класс DrawShape, который расширяет представление , В этом классе в OnDraw() я создаю круг и заполняю его цветом.
От деятельности Я звоню в приложение. // До этого момента у меня все в порядке.
Теперь мне нужно перекрасить Круг несколько раз (синий, красный, желтый и т.д ..)
Так что я читал и лучший способ заключается в использовании темы .. Я также прочитал вам нужно использовать postInvalidate() для перерисовки (я все еще не понимаю, откуда я должен это назвать) называется ли это вызовом из Activity? или внутри OnDraw() ?.
Надеюсь, вы понимаете, чего я хочу достичь, это только то, что я havent нашел хороший учебник, который показывает это, как перекрасить что-то х раз. Когда я делаю Thread.sleep(), он останавливается, а затем показывает мое приложение .. но теперь я понимаю, почему, потому что я играю с главной нитью.
Пожалуйста, помогите мне понять это ..
Спасибо
Отлично, если мне нужно перерисовать круг, то в перспективе() я могу поставить что-то вроде Canvas с = новый Canvas(); и Paint paint = new Paint(); Могу ли я сделать это здесь? что ты предлагаешь? Кроме того, что если у меня есть класс, который расширяет представление, могу ли я сделать что-то вроде myClass.OnDraw(); ? – earm
Пара вещей здесь: поток должен использоваться для обновления значений, влияющих на холст. Например, перемещение позиции символа в игре ++ x (перемещение символа по горизонтали над позицией). Вы можете использовать поток для изменения значения количества кругов для рисования и цветов для их изменения. Вызывая функцию postInvalidate(), функция canvas onDraw() также будет вызвана, поэтому вам не нужно напрямую обращаться к onDraw(). Эта ссылка имеет код, очень похожий на то, что вы делаете: http://blog.goltergaul.de/2010/03/android-game-project-basics-of-threads-and-canvas/ – ice911