android 實(shí)現(xiàn)控件左右或上下抖動教程
差不多一年前在自己的項(xiàng)目中用過這效果,雖然很簡單,但還是寫寫。
1、首先在你的res目錄下新建anim子目錄,并在anim目錄下新建兩個文件:
(1)shake.xml文件(位移/平移:translate),設(shè)置起始的位移范圍、效果時間、循環(huán)次數(shù)
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="10"
android:duration="500"
android:interpolator="@anim/share_cycle">
<!--.
fromXDelta:x軸起點(diǎn)抖動位置
toXDelta:x軸終點(diǎn)抖動位置
duration:循環(huán)播放的時間
interpolator:循環(huán)不放設(shè)置(次數(shù))
-->
</translate>
(2)cycle.xml文件,控制循環(huán)次數(shù)
<?xml version="1.0" encoding="utf-8"?> <cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="2"><!--. 循環(huán)次數(shù) --> </cycleInterpolator><!--. 循環(huán)播放 -->
最后給你的控件設(shè)置改動畫屬性
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
ivShake.startAnimation(shake);
這里ivShake是ImageView,就是這么簡單。
2、個人碰到一個問題就是在Activity實(shí)現(xiàn)監(jiān)聽中添加動畫效果第一次沒有反應(yīng),不知道為什么
補(bǔ)充知識:Android 抖動提示動畫
左右抖動
ObjectAnimator animator = ObjectAnimator.ofFloat(textView, "translationX", 0, 100, -100,0); animator.setDuration(200); animator.start();
重復(fù)左右抖動
Animation translateAnimation = new TranslateAnimation(-20, 20, 0, 0);
translateAnimation.setDuration(100);//每次時間
translateAnimation.setRepeatCount(10);//重復(fù)次數(shù)
/**倒序重復(fù)REVERSE 正序重復(fù)RESTART**/
translateAnimation.setRepeatMode(Animation.REVERSE);
nope.startAnimation(translateAnimation);
public static void Shakeview( View view) {
Animation translateAnimation = new TranslateAnimation(-10, 10, 0, 0);
translateAnimation.setDuration(50);//每次時間
translateAnimation.setRepeatCount(10);//重復(fù)次數(shù)
/**倒序重復(fù)REVERSE 正序重復(fù)RESTART**/
translateAnimation.setRepeatMode(Animation.REVERSE);
view.startAnimation(translateAnimation);
}
左右上下抖動
ObjectAnimator animator = tada(clickMe);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.start();
public static ObjectAnimator tada(View view) {
return tada(view, 2f);
}
public static ObjectAnimator tada(View view, float shakeFactor) {
PropertyValuesHolder pvhScaleX = PropertyValuesHolder.ofKeyframe(View.SCALE_X,
Keyframe.ofFloat(0f, 1f),
Keyframe.ofFloat(.1f, .9f),
Keyframe.ofFloat(.2f, .9f),
Keyframe.ofFloat(.3f, 1.1f),
Keyframe.ofFloat(.4f, 1.1f),
Keyframe.ofFloat(.5f, 1.1f),
Keyframe.ofFloat(.6f, 1.1f),
Keyframe.ofFloat(.7f, 1.1f),
Keyframe.ofFloat(.8f, 1.1f),
Keyframe.ofFloat(.9f, 1.1f),
Keyframe.ofFloat(1f, 1f)
);
PropertyValuesHolder pvhScaleY = PropertyValuesHolder.ofKeyframe(View.SCALE_Y,
Keyframe.ofFloat(0f, 1f),
Keyframe.ofFloat(.1f, .9f),
Keyframe.ofFloat(.2f, .9f),
Keyframe.ofFloat(.3f, 1.1f),
Keyframe.ofFloat(.4f, 1.1f),
Keyframe.ofFloat(.5f, 1.1f),
Keyframe.ofFloat(.6f, 1.1f),
Keyframe.ofFloat(.7f, 1.1f),
Keyframe.ofFloat(.8f, 1.1f),
Keyframe.ofFloat(.9f, 1.1f),
Keyframe.ofFloat(1f, 1f)
);
PropertyValuesHolder pvhRotate = PropertyValuesHolder.ofKeyframe(View.ROTATION,
Keyframe.ofFloat(0f, 0f),
Keyframe.ofFloat(.1f, -3f * shakeFactor),
Keyframe.ofFloat(.2f, -3f * shakeFactor),
Keyframe.ofFloat(.3f, 3f * shakeFactor),
Keyframe.ofFloat(.4f, -3f * shakeFactor),
Keyframe.ofFloat(.5f, 3f * shakeFactor),
Keyframe.ofFloat(.6f, -3f * shakeFactor),
Keyframe.ofFloat(.7f, 3f * shakeFactor),
Keyframe.ofFloat(.8f, -3f * shakeFactor),
Keyframe.ofFloat(.9f, 3f * shakeFactor),
Keyframe.ofFloat(1f, 0)
);
return ObjectAnimator.ofPropertyValuesHolder(view, pvhScaleX, pvhScaleY, pvhRotate).
setDuration(1000);
}
以上這篇android 實(shí)現(xiàn)控件左右或上下抖動教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)爆炸式菜單按鈕彈出效果
這篇文章主要介紹了Android實(shí)現(xiàn)爆炸式菜單按鈕彈出效果,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
Android Flutter圖片處理之高斯模糊的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用Android Flutter實(shí)現(xiàn)高斯模糊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
Android使用Gallery實(shí)現(xiàn)照片拖動的特效
這篇文章主要介紹了Android如何使用Gallery實(shí)現(xiàn)照片拖動的特效,幫助大家更好的理解和利用Android進(jìn)行開發(fā),感興趣的朋友可以了解下2021-01-01
Android?startActivityForResult的調(diào)用與封裝詳解
startActivityForResult?可以說是我們常用的一種操作了,目前有哪些方式實(shí)現(xiàn)?startActivityForResult?的功能呢?本文就來和大家詳細(xì)聊聊2023-03-03
Android開發(fā)之圖形圖像與動畫(三)Animation效果的XML實(shí)現(xiàn)
使用XML來定義Tween Animation動畫的XML文件在工程中res/anim目錄,這個文件必須包含一個根元素,感興趣的友可以了解一下,希望本文對你有所幫助2013-01-01
android實(shí)現(xiàn)手機(jī)傳感器調(diào)用
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)手機(jī)傳感器調(diào)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04

