Android рисует растровые изображения быстро - PullRequest
0 голосов
/ 14 ноября 2011
Bitmap top;
int x;
public ViewExample() {
    top = BitmapFactory.decodeResource(getResources(), R.drawable.top);

    Thread thread = new Thread(){
        public void run(){
            while(true){
                x++;
                postInvalidate();
            }
        }
    };
    thread.start();
}

@Override
protected void onDraw(Canvas c) {
    c.drawBitmap(top, x, 0, null);
}

Я пытаюсь быстро нарисовать подвижное растровое изображение, что нужно сделать, чтобы сделать рисование быстрым?(это очень медленно и не плавно)

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

В данный момент вы используете слишком много энергии вашего телефона. Вы должны позволить нити спать время от времени. 40 мс - это хорошее время, дающее вам 25 кадров в секунду.

Вот пример

public ViewExample() {
    top = BitmapFactory.decodeResource(getResources(), R.drawable.top);

    Thread thread = new Thread(){
        public void run(){
            while(true){
                x++;
                postInvalidate();

                try
                {
                    Thread.sleep(40);
                }
                catch (InterruptedException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();

                }
            }
        }
    };
    thread.start();
}
0 голосов
/ 14 ноября 2011

Если вы используете класс View для создания поверхности, он будет очень медленным, поэтому используйте SurfaceView.

Вид поверхности используется для создания часто меняющейся поверхности.

Перейти Ее е, чтобы узнать больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...