web-dev-qa-db-ja.com

9つの古いAndroidアニメーションを使用してImageView Pulseエフェクトを作成する方法

9つのolad androidsフレームワークアニメーションを使用して、Pulseエフェクトをどのように作成すればよいのでしょうか。

理解を深めるために、ImageViewがあり、画像を少し小さくしてから元のサイズに戻すなどの「パルス」効果が必要な場合、スケーリングは中央に配置されます。

下位互換性のために9つのoladアンドロイドを使用しています。

その他のオプションは大歓迎です。

ありがとうございました。

29
George Taskos

R.anim.Pulse

<scale xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:duration="1000"
    Android:fromXScale="1"
    Android:fromYScale="1"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:repeatCount="1"
    Android:repeatMode="reverse"
    Android:toXScale="0.5"
    Android:toYScale="0.5" />
ImageView imageView = (ImageView) findViewById(R.id.image);
Animation Pulse = AnimationUtils.loadAnimation(this, R.anim.Pulse);
imageView.startAnimation(Pulse);
99

heart_Pulse.xmlはres/animフォルダーにheart_Pulse.xmlを置きますAndroid:interpolatorを追加します

次にあなたの活動で以下のように使用します

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:interpolator="@Android:anim/accelerate_decelerate_interpolator"
    Android:fromXScale="1"
    Android:fromYScale="1"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:toXScale="0.5"
    Android:toYScale="0.5"
    Android:duration="1000"
    Android:repeatCount="infinite"
    Android:repeatMode="reverse"/>

ImageView imageView =(ImageView)findViewById(R.id.imageView);
Animation Pulse = AnimationUtils.loadAnimation(this, R.anim.heart_Pulse);
imageView.startAnimation(Pulse);
13
Chirag Darji

@ Matthias RobbersソリューションをXMLから直接使用するには、次の操作を実行できます。2つのファイルを作成します。

1- Pulse.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <scale xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:fromXScale="1"
        Android:fromYScale="1"
        Android:pivotX="50%"
        Android:pivotY="50%"
        Android:toXScale="0.8"
        Android:toYScale="0.8"
        Android:duration="500"
        Android:repeatCount="infinite"
        Android:repeatMode="reverse"/>
</set>

2- Pulse_layout_animation.xml

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:animation="@anim/Pulse">
</layoutAnimation>

次に、レイアウトxmlファイルで、このアニメーションを必要なビューに追加するだけです。次に例を示します。

<ImageView
    Android:layout_width="55dp"
    Android:layout_height="55dp"
    Android:src="@drawable/heart"
    Android:layout_centerHorizontal="true"
    Android:layout_centerVertical="true"
    Android:layoutAnimation="@anim/Pulse_layout_animation" />
3