web-dev-qa-db-ja.com

ImageViewのバイブレーションアニメーションを作成する方法

私はこのアニメーションを知りません。

どうすればそのようなXMLでそれを行うことができますか?または別の解決策?

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" 
    Android:interpolator="@Android:anim/accelerate_decelerate_interpolator" 
    Android:fillAfter="true"> 
    ......
</set>

ご協力いただきありがとうございます

22
Nam Vu

このコードは、ビューを水平方向に揺らします

shake.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:duration="1000"
    Android:fromXDelta="0"
    Android:interpolator="@anim/cycle_5"
    Android:toXDelta="10" />

cycle_5.xml

<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:cycles="5" />

ImageViewを振るメソッド

public void onShakeImage() {    
   Animation shake;
   shake = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.shake);

   ImageView image;
   image = (ImageView) findViewById(R.id.image_view);

   image.startAnimation(shake); // starts animation
}
23
Philip BH

バイブレーションアニメーションがどのように機能するかについては、以下のリンクからチェックアウトできますか?

1) Androidでのアニメーションの揺れ
2) 振動アニメーション

お役に立てば幸いです。

ありがとう

14
GrIsHu

1)バイブレーションまたは2)シェイク(プロパティアニメーションを使用)次のコードが私のために機能します。

 ObjectAnimator rotate = ObjectAnimator.ofFloat(animateView, "rotation", 0f, 20f, 0f, -20f, 0f); // rotate o degree then 20 degree and so on for one loop of rotation.
// animateView (View object) 
        rotate.setRepeatCount(20); // repeat the loop 20 times
        rotate.setDuration(100); // animation play time 100 ms 
        rotate.start();
6
Geet Thakur

shake.xmlをanimディレクトリ内に作成します

<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
<rotate
    Android:duration="70"
    Android:fromDegrees="0"
    Android:interpolator="@Android:anim/linear_interpolator"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:repeatCount="5"
    Android:repeatMode="reverse"
    Android:toDegrees="0" />
<translate
    Android:duration="70"
    Android:fromXDelta="40"
    Android:interpolator="@Android:anim/linear_interpolator"
    Android:repeatCount="5"
    Android:repeatMode="reverse"
    Android:toXDelta="-40" />

あなたのJavaファイル内にメソッドを追加する

public void animateView(View view){
    Animation shake = AnimationUtils.loadAnimation(getActivity(), R.anim.shake);
    view.startAnimation(shake);
}

アニメーションのメソッド内にビューを渡します

animateView(yourView);
4
Mehul Solanki

アニメーションディレクトリにアニメーションファイルを作成します。

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:duration="200"
    Android:fromDegrees="-10"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:repeatCount="infinite"
    Android:repeatMode="reverse"
    Android:toDegrees="10" />



Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
your_view.startAnimation(shake);
2
Makvin