Управление скоростью анимации - PullRequest
1 голос
/ 04 июня 2010

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

view.setVisibility(View.VISIBLE);
TranslateAnimation anim=new TranslateAnimation(0.0f, 0.0f,
                                  view.getLayoutParams().height, 0.0f);
anim.setDuration(5);
anim.setInterpolator(new LinearInterpolator());
view.startAnimation(anim);

Он хорошо оживляет, но я не могу контролировать скорость.Я установил значение для setDuration () равным 5, 500, 5000, 5000000 - и все это без заметного эффекта.

Что еще нужно сделать, чтобы контролировать продолжительность анимации?

Кстати, моя базовая SDK составляет 1.6.

Ответы [ 2 ]

1 голос
/ 05 июня 2010

Я использую подход XML для настройки анимации для макета.

translate.xml

<?xml version="1.0" encoding="utf-8"?>
<set
     xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator" >  
      <translate 
        android:fromYDelta="-100%" 
        android:toYDelta="0"
        android:duration="500" />"
       />
</set>

Чтобы контролировать продолжительность анимации, вы можете попробовать изменить android:duration ="500" на нужные вам значения.

layout_anim_controller.xml

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
        android:animationOrder="reverse"
        android:animation="@anim/translate" />

Настройка анимации для макета

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
   > 

    <WebView 
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layoutAnimation="@anim/layout_anim_controller"
    />

</LinearLayout>

Может быть, это немного помогает в правильном направлении.

0 голосов
/ 05 июня 2010

Вот что я нашел в своем тестировании.

  1. Это может относиться или не относиться к WebViews.Мой исходный код был скопирован из примера, который анимировал LinearLayout.
  2. Установка продолжительности анимации не влияет, если вы пытаетесь использовать setVisibility (View.GONE) и setVisibility (View.Visible) в WebView.Единственный способ заставить анимацию работать должным образом - это отключить эти методы в WebView.
  3. Настройка продолжительности анимации не влияет, если вы создаете анимацию в Java, независимо от того, что вы делаете с setVisibility.Опять же, это может относиться только к WebViews.
  4. Единственный способ заставить анимацию работать с WebView - это исключить вызовы setVisibility и использовать анимацию на основе XML, как это было предложено primalpop в предыдущем ответе..

Опять же, YMMV, и это может относиться только к WebViews.

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