Можно ли анимировать (масштабировать) только один компонент макета Android и обновлять макет во время анимации - PullRequest
3 голосов
/ 10 ноября 2009

Представьте, что у меня есть панель инструментов, реализованная в виде горизонтальной линейной планировки следующим образом:

  [___Button1____] [___Button2___] [___Button3___] [___Button4___]

Когда кто-то нажимает на Button2, я хочу, чтобы панель инструментов сменилась на:

  [___Button1____] [___________Button2___________] [___Button3___]

Панель инструментов должна переходить из первого состояния во второе состояние посредством плавной анимации. Я хотел бы использовать масштабную анимацию для Button2, и пока это происходит, Button3 и Button 4 должны двигаться вправо (пока идет анимация). В конце анимации (или, может быть, во время) я исчезну с Button4.

Вопрос: Как мне добиться анимации макета панели инструментов таким образом, чтобы масштабировался только один компонент (т.е. Button2), а остальные не масштабировались - макет просто обновляется во время анимации Button2.

Я посмотрел на LayoutAnimationController, но он не позволяет мне либо: 1. указать разные анимации для разных компонентов, ИЛИ 2. указать, что анимировать только один компонент, а другие - нет.

Я не могу масштабировать всю панель инструментов, потому что она искажает Button1 / 3/4, чего я не хочу.

Есть мысли о том, как это сделать?

1 Ответ

0 голосов
/ 21 января 2010

У меня была такая же проблема с ListView, вы можете попробовать настроить мой код?
Хотя я не уверен, как вы обрабатываете события кнопок:

public void onListItemClick(ListView l, View v, int position, long id) 
{
    ImageView iv = (ImageView)v.findViewById(R.id.icon);
    iv.startAnimation(anim);
}

Обратите внимание, что в вашем случае вы будете работать с представлением кнопок, а не с ImageView.

Привет

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