0
Я пытаюсь образами петель в полотне (Расширяет вид класс) для создания анимации (Как GIF One), но он держит отставание и заикание моего приложения ...изображение Петли на холсте
Например:
public PlayView(Context context) {
super(context);
loadFrames();
this.context = context;
}
protected void onDraw(final Canvas canvas) {
canvas_main = canvas;
new Thread(new Runnable() {
@Override
public void run() {
while (!Thread.interrupted())
try {
Thread.sleep(10);
time = (time + 1) % 4;
image = images[time];
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
invalidate();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
if (image != null) {
System.out.println("Image is not null!");
if (!right_Clicked) {
canvas_main.drawBitmap(image, width/2,
height - (image.getHeight() + image.getHeight()/2),
paint);
}
super.onDraw(canvas_main);
}
void loadFrames() {
res = getResources();
images[0] = BitmapFactory.decodeResource(res, R.drawable.image_1);
images[1] = BitmapFactory.decodeResource(res, R.drawable.image_2);
images[2] = BitmapFactory.decodeResource(res, R.drawable.image_3);
images[3] = BitmapFactory.decodeResource(res, R.drawable.image_4);
}
Как я могу обойти образы, чтобы создать анимацию без задержек и заиканий?
Вы создаете новую нить при каждом обращении к виду. Вероятно, вы создаете тысячи потоков, которые пытаются рисовать изображения. – dharms
Итак, я сохраню этот код как обычно, но удаляю только поток? –
Вам нужна нить для анимации. Сохраните ссылку на него и проверьте, нет ли null, и только создайте его один раз. – dharms