Как я могу заставить эту ScaleAnimation работать? - PullRequest
3 голосов
/ 22 ноября 2011

закрыт.Я сделал это сам, используя Timer и переопределив метод draw после того, как узнал больше из книги.

Ответы [ 2 ]

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

Не звоните animation.startAnimation(animation).просто позвоните startAnimation(animation); или this.startAnimation(animation);

0 голосов
/ 22 ноября 2011

Animation объекты используются для анимации View объектов. Если вы рисуете круг самостоятельно в view.onDraw(), тогда вам действительно нужно просто масштабировать круг самостоятельно.

Обновление : объекты анимации используются для анимации Views из основного потока вашего приложения. Основной поток не совпадает с потоком пользовательского интерфейса, а объекты Animation предоставляют хороший способ сообщить потоку пользовательского интерфейса рисовать анимацию из основного потока. Однако onDraw вызывается из потока пользовательского интерфейса, поэтому нет смысла использовать объект Animation, поскольку исполняемый код уже находится в области действия потока пользовательского интерфейса.

Обновление 2: Вот пример правильного способа выполнения ScaleAnimation

float startScaleX = 1.0f;
float startScaleY = 1.0f;
float endScaleX = 2.0f;
float endScaleY = 2.0f;
Animation a = new ScaleAnimation(startScaleX, endScaleX, startScaleY, endScaleY);
a.setDuration(1000);

View view = findViewById(R.id.my_view);

view.startAnimation(a);

Обратите внимание, что после создания объекта animation я вызываю view.startAnimation(a). Не имеет смысла запускать анимацию, не прикрепляя ее к представлению.

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