2014-04-15 4 views
0

Я пытаюсь добавить различные анимации, используя matrix.setRotate (45) и т. Д. В Живые обои, но это не сработало. Все, что он делал, показывало фотографии в 45 градусов. Я думал, что он будет вращаться до 45 градусов?Как добавить анимацию?

Я хотел бы добавить различные анимации в слайд-шоу живые обои как вращение, замирания, перевод, преобразование, масштабирование и т.д.

Я даже попытался

matrix.setRotate (90);

matrix.setTranslate (100, 100);

но картинки были очень странными. Возможно, была какая-то анимация ....

Я знаю, как применять анимации от res/anim/animation.xml до НЕТ живых обоев, но я не могу найти способ применить эту анимацию .xml в Живые обои.

Можно и легко применить анимации к Живые обои?

Благодарим вас за помощь.

Java код:

......

.....

....

private void drawFrame() { 
    // TODO Auto-generated method stub 
    final SurfaceHolder holder = getSurfaceHolder(); 
    Canvas c = null; 
    try { 
     c = holder.lockCanvas(); 
     if (c != null) { 


      drawPirate(c); 
     } 
    } finally { 
     if (c != null) 
      holder.unlockCanvasAndPost(c); 
    } 
    mhandler.removeCallbacks(drawrunnable); 
     if (mVisible) { 
      mhandler.postDelayed(drawrunnable); 
     } 
    } 

private void drawPirate(Canvas c) { 
    // TODO Auto-generated method stub 

    Bitmap icon;    
    Matrix matrix = new Matrix(); 
    matrix.setRotate(45); 

    icon = BitmapFactory.decodeResource(getResources(),pirates[i]); 
    c.drawBitmap(icon, matrix, null); 
    icon.recycle(); 
} 

}

ответ

1

Я не знакомый с живыми обоями, но, надеюсь, я могу ответить на некоторые из ваших других вопросов.

  1. setRotate не аниматор, он поворачивается к его установке сразу
  2. Хорошего способа сделать это было бы создать поток для вашего drawFrame() и есть его цикл призывающей drawPirate (с), в то время как каждый раз увеличивая значение поворота, так что вы рисуете изображение с помощью setRotate (1), setRotate (2) и т. д. до 45. Возможно, вам захочется посмотреть пример кода приложения JetBoy для такого рода реализации.
  3. Неправильная практика распределения новых вещей и декодирования ресурсов в методе рисования. Когда вы совершаете несколько вызовов, ему придется каждый раз создавать новые вещи и замедлять работу.
+0

Спасибо за комментарий. Я не знал setRotate ... не был аниматором. Теперь я знаю. Я все еще не знаю, как добавить анимацию в мои живые обои. Очевидно, никто больше не хочет помогать рядом с вами. Как я уже говорил, я могу добавить анимации в NONE Live Wallpaper с помощью anim/animation.xml без проблем. Можете ли вы дать мне ссылку на пример Jetboy? Спасибо –

+0

Это в андроидных «образцах для sdk», которые вы можете скачать через eclipse, используя своего менеджера Android SDK. – Whitney

+0

Я только что был там, но я не видел образец под названием «Jetboy». Это под другим именем? Спасибо - user3506585 10 мин. Назад –