Анимации ViewFlipper и minSdkVersion - PullRequest
2 голосов
/ 24 декабря 2010

вчера я загрузил приложение на рынок и мне пришлось добавить элемент uses-sdk android:minSdkVersion="4" в файл манифеста. После добавления этого элемента я получаю странное поведение от своего виджета ViewFlipper. Без minSdkVersion представление Flipper использует анимации без проблем, после добавления оно игнорирует их или, по крайней мере, кажется, что анимация не используется. Я также тестировал с minSdkVersion = "8", но, к сожалению, это не помогло заставить анимацию работать. Также попытался добавить оба: (uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8"), то же самое поведение. Удаление элемента minSdkVersion из манифеста (локальное тестирование) заставляет ViewFlipper работать как шарм. Маркет не позволяет мне загружать APK без элемента minSdkVersion в манифесте.

Кто-нибудь знает, что это такое? Это действительно странное поведение, на мой взгляд, и оно действительно снижает качество / пользовательский опыт приложения. Пожалуйста, помогите, если кто-то знает, как это исправить.

Фрагмент кода использования флиппера для пролистывания контента.

// call for the flipper to show the next item
flipper.setInAnimation(AnimationHelper.inFromLeftAnimation());
flipper.setOutAnimation(AnimationHelper.outToRightAnimation());
flipper.showNext();

// animation example method
public static Animation inFromRightAnimation() {
  Animation inFromRight = new TranslateAnimation(
  Animation.RELATIVE_TO_PARENT, +1.0f,
  Animation.RELATIVE_TO_PARENT, 0.0f,
  Animation.RELATIVE_TO_PARENT, 0.0f,
  Animation.RELATIVE_TO_PARENT, 0.0f);
  inFromRight.setDuration(150);
  inFromRight.setInterpolator(new AccelerateInterpolator());
  return inFromRight;
}

// XML: current Android manifest config for minSdkVersion
<uses-sdk android:minSdkVersion="4" 
 android:targetSdkVersion="8" 
/>

Спасибо всем и наилучшими пожеланиями, Митя

1 Ответ

1 голос
/ 24 июня 2011

На самом деле я столкнулся с такой же проблемой, как вы говорите выше.Производительность каждой анимации будет снижена при установке minSdkVersion на 4 или выше.И журналы тестов показывают, что первый временной интервал между Animation.applyTransformation и Animation.getTransformation изменяется с 3-6 мс до 100-200 мс, в этом суть, но у меня нет времени, чтобы узнать больше исходного кода и выяснить, почему.Теперь я использую решение для установки minSdkVersion на 3 или ниже.Плохой код, но работает, надеюсь, будет полезным.

...