Справка по Android-анимации - PullRequest
0 голосов
/ 13 мая 2011

Здравствуйте. Я пытаюсь создать анимацию, подобную enter image description here, создавая пузыри в форме сердца, но не на 100%, как это. Это может на некоторой статической активности.

Но я не где. В документации отсутствуют примеры, а примеры в API просто недопустимы. Сделать такую ​​анимацию не должно быть так сложно.

Я вставляю свой код, пожалуйста, помогите мне.

Файл класса

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;

public class AnimationTest extends Activity {
AnimationDrawable animation;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button btnStart = (Button) findViewById(R.id.btnStart);
    final ImageView imgView = (ImageView) findViewById(R.id.img);

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startAnimation();
        }
    });
    imgView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
}

class Starter implements Runnable {
    public void run() {
        animation.start();
    }
}

private void startAnimation() {
    animation = new AnimationDrawable();
    animation.addFrame(getResources().getDrawable(R.drawable.one), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.two), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.three), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.four), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.five), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.six), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.seven), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.eight), 100);
    animation.setOneShot(false);


    ImageView imageView = (ImageView) findViewById(R.id.img);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(80, 90);
    params.alignWithParent = true;
    params.addRule(RelativeLayout.CENTER_IN_PARENT);
    imageView.setLayoutParams(params);
    imageView.setImageDrawable(animation);
    imageView.post(new Starter());
}

}

XML-файл

    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="Frame by Frame Animation Example"
        android:gravity="center" />

    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:layout_gravity="center_horizontal">

        <ImageView android:id="@+id/img" android:layout_width="80px"
            android:layout_height="90px" android:layout_centerInParent="true" />

        <Button android:id="@+id/btnStart" android:text="Start Animation"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignParentRight="true" />

    </RelativeLayout>

</LinearLayout>

Изображения, вы также можете вставить некоторые другие изображения 1 2 4 * * тысяча двадцать-два

EDIT Чего я хочу достичь шаг1: рыба идет с левой стороны setp2: рыба идет с правой стороны

step3: в самом центре обеих рыб появляется и увеличивается сердце step4: тогда маленькие сердца разлетаются и исчезают

Ответы [ 2 ]

3 голосов
/ 13 мая 2011

Расти анимации

Перевести + масштабировать + повернуть набор анимации

Начните с просмотра этих. Это научит основам API анимации. Чтобы получить эффект цепочки один за другим, вы ищете единственный способ, который я нашел, это использовать animationListener, чтобы получить обратный вызов, когда он заканчивается, а затем начать следующий оттуда. Честно говоря, это может быть проще реализовать для ваших нужд, если вы просто превратите это в файл фильма и воспроизведите его в VideoView, а не создаете все эти виды отдельно и не применяете анимацию ко всем из них.

2 голосов
/ 06 ноября 2012

анимация свойства:

анимация, определенная в xml, которая изменяет свойства цвета, альфа-значения в течение заданного промежутка времени.

Просмотр анимации:

frame animation: анимация определена в xml-файле, который показывает последовательность изображений в порядке. (как фильм)

анимация анимации: Tween animation создает анимацию, выполняя серию преобразований на одном изображении.

AlphaAnimation: управляет изменениями прозрачности. RotateAnimation: управляет поворотами. ScaleAnimation: управляет ростом и сокращением TranslateAnaimation: Управляет изменениями позиции.

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