1. 程式人生 > >Android動畫(圖片閃爍、左右搖擺、上下晃動等效果)

Android動畫(圖片閃爍、左右搖擺、上下晃動等效果)

通常我們需要一個item連續的播放某一段動畫或者迴圈的執行某個動畫,這裡我們就可以用到一下技巧。

一、續播 (不知道取什麼名字好,就是先播放動畫A, 接著播放動畫B)

有兩種方式:

第一種:

分別定義兩個動畫,A和B, 然後先播放動畫A,設定A 的 AnimationListener。當onAnimationEnd觸發(即A播放完畢)時,開始播放B。
  • animation1.setAnimationListener(new Animation.AnimationListener() {
  • @Override
  • public void onAnimationStart(Animation animation) {
  • }
  • @Override
  • public void onAnimationRepeat(Animation animation) {
  • }
  • @Override
  • public void onAnimationEnd(Animation animation) {
  • animation2.start();
  • }
  • );

第二種方法:

第一種方法還是比較繁瑣的,下面這種方式相信大家會喜歡的。

寫一個動畫集AnimationSet,在其中定義動畫A和B,為動畫B設定startOffset, 其值就是前一個動畫播放的所需的時間。

這邊舉一個例子,動畫A是 透明度從 0.1 到 1.0 , 動畫B是透明度從1.0到0.1, 使用下面這個動畫集你就可以看到整個變化過程。

  • <?xml version="1.0" encoding="utf-8"?>
  • <set xmlns:android="http://schemas.android.com/apk/res/android">
  • <alpha
  • android:fromAlpha="0.2"
  • android:toAlpha="1.0"
  • android:duration="3000"
  • />
  • <alpha
  • android:startOffset="3000"
  • android:fromAlpha="1.0"
  • android:toAlpha="0.2"
  • android:duration="3000"
  • />
  • </set>


複製程式碼
其中android:startOffset="3000" 表示延遲3秒後再執行。 如果去掉其中的 android:startOffset="3000" , 你就什麼效果也看不到了。 因為兩個動畫會同時播放。


二、迴圈
有時候,我們可能需要實現一個圖片不停閃爍的功能(比如天氣預報中的緊急警報功能), 或者有的時候我們需要實現圖片左右晃動,都需要迴圈動畫來實現。
同樣,也有兩種辦法。
第一種,設定兩個動畫A 和 B, 動畫A 是透明度 0 -1, 動畫B是1 - 0, 然後對這兩個動畫都進行監聽, A 結束執行B, B結束執行A.. 無限迴圈...

第二種,第二種,利用Animation的setRepeatCount、setRepeatMode來實現動畫迴圈。

比如閃爍(透明度亮 -> 暗, 暗->亮,如此迴圈)

  • //閃爍
  • AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.1f, 1.0f);
  • alphaAnimation1.setDuration(3000);
  • alphaAnimation1.setRepeatCount(Animation.INFINITE);
  • alphaAnimation1.setRepeatMode(Animation.REVERSE);
  • iv.setAnimation(alphaAnimation1);
  • alphaAnimation1.start();


複製程式碼
alphaAnimation1.setRepeatCount(Animation.INFINITE); 表示重複多次。 也可以設定具體重複的次數,比如alphaAnimation1.setRepeatCount(5);
alphaAnimation1.setRepeatMode(Animation.REVERSE);表示動畫結束後,反過來再執行。 該方法有兩種值, RESTART 和 REVERSE。 RESTART表示從頭開始,REVERSE表示從末尾倒播。

再比如左右搖擺

  • //搖擺
  • TranslateAnimation translateAnimation = new TranslateAnimation(150f, 350f, 50, 50);
  • translateAnimation.setDuration(1000);
  • translateAnimation.setRepeatCount(Animation.INFINITE);
  • translateAnimation.setRepeatMode(Animation.REVERSE);
  • iv.setAnimation(translateAnimation); //這裡iv就是我們要執行動畫的item,例如一個imageView
  • translateAnimation.start();

通常我們會在xml中直接定義,如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:shareInterpolator="true">
        <rotate
               android:fromDegrees="0"
               android:toDegrees="7"
               android:pivotX="50%"
               android:pivotY="50%"
               android:repeatCount="infinite"
               android:repeatMode="reverse"//這個屬性是定義動畫播放完後再尾向頭播放
               android:duration="200"/>       
</set>

相關推薦

Android動畫(圖片閃爍左右搖擺上下晃動效果)

通常我們需要一個item連續的播放某一段動畫或者迴圈的執行某個動畫,這裡我們就可以用到一下技巧。 一、續播 (不知道取什麼名字好,就是先播放動畫A, 接著播放動畫B) 有兩種方式: 第一種: 分別定義兩個動畫,A和B, 然後先播放動畫A,設定A 的 AnimationListener。當onAnimati

剖析Android動畫(圖片閃爍左右搖擺上下晃動效果)

圖片閃爍,類似這樣。 左右搖擺: 一、續播  (不知道取什麼名字好,就是先播放動畫A, 接著播放動畫B)         有兩種方式。         第一種,分別動畫兩個動畫,A和B, 然後先播放動畫A,設定A 的 AnimationListener。當onAnimat

Android 獲取圖片資源格式(pngjpeggifbmp...)

做開發的時候有時需要獲取圖片的型別格式,如常見的jpg、png、gif、bmp等圖片格式。 那麼在Android中如何獲得這些圖片格式呢? 方法一:通過圖片字尾名獲得圖片格式 大多數方法都是通過獲取圖片的字尾名來辨別圖片的型別,其實這樣並不能正確的獲取到圖

WPF技術觸屏上的應用系列(五): 圖片列表非同步載入手指進行縮小放大拖動 慣性滑入滑出效果

        去年某客戶單位要做個大屏觸屏應用,要對檔案資源進行展示之用。客戶端是Window7作業系統,54寸大屏電腦電視一體機。要求有很炫的展示效果,要有一定的視覺衝擊力,可觸控操作。當然滿足客戶的要求也可以有其它途徑。但鑑於咱是搞 .NET技術的,首先其衝想到的微軟

AVL樹的左單旋右單旋左右右左旋

下面是情景劇,有三個角色,分別是root,pivot,和底節點。圖片引自:https://blog.csdn.net/u012361418/article/details/46535293按照這三個節點從上到下節點的順序,可以分為四種情況:分別稱作左左型、右右型、左右型、右左

Android Shader渲染以及實現水波紋霓虹文字雷達效果

Shader概述 Shader是繪圖過程中的著色器,實現繪製各種不同的效果,比如映象,水波紋,雷達等等,Shader有以下五個子類: - BitmapShader用於Bitmap圖片的渲染 - ComposeShader用於混合渲染 - LinearGradient用於線性渲染

Android瀑布流優化,解決Recyclerview展示大批量圖片時Item自動切換閃爍空白問題

本文涉及的程式碼案例可以在下方的連結中找到,如果對你有幫助,請給個Star(#^.^#)問題分析        這段時間業務需求用到RecyclerView瀑布流載入並展示大批量圖片,但一開始單純使用RecyclerView直接載入圖片,使得顯示上出現了滑動到頂端時閃爍,It

Android瀑布流優化,解決Recyclerview展示大批量圖片時Item自動切換閃爍空白問題...

code小生,一個專注於 Android 領域的技術分享平臺作者:請抱抱陳先生地址:https:

修改Android開機圖片動畫聲音

二、修改第二張圖片  方法一:  在window下的操作:  1 在 Widows 環境中建立資料夾:bootanimation  2 在bootanimation資料夾中建立子資料夾:   part0   part1   然後將一批.png檔案拷貝到資料夾part0裡面,part1中暫時不放圖片檔案  3

Android圖片預覽功能(可旋轉縮放左右切換)

我們要實現的效果 1、點選圖片出現預覽介面 2、可對圖片進行旋轉、縮放 3、能左右滑動,預覽其他圖片 4、單擊預覽介面後,回到上一介面 具體如下圖:            使用到的第三方庫

android手機安全衛士Kotlin漫畫支付寶動畫沈浸狀態欄源碼

文字 多源 href fragment 四種 cimage ++ 條件 支付 Android精選源碼 輕量級底部導航欄 android手機衛士源碼 android實現高仿今日頭條源碼 一個用Kotlin寫的簡單漫畫App源碼

Android 調用系統分享文字圖片文件,可直達微信朋友圈QQQQ空間微博

gem 朋友 con vmpolicy false 錯誤 區分 指定 如果 原文:Android 調用系統分享文字、圖片、文件,可直達微信、朋友圈、QQ、QQ空間、微博 兼容SDK

Android 系統自帶圖片裁剪功能(適配7.08.0對了還有小米手機)

前段時間寫了如何獲取相簿和拍照之後的照片並且進行顯示和上傳,這一次是如何進行圓形影象製作,經常看我寫的筆記的人會知道,我很懶。那麼我就懶的自定義了,目前需求就用原生的就好了,大神的輪子,我會在後面進行推薦。這篇筆記是依賴於:Android呼叫相簿、相機(相容6.0、7.0、8.0) 文

android應用市場社群客戶端漫畫AppTensorFlow Demo歌詞顯示動畫效果原始碼

Android精選原始碼 MVP架構Android應用市場專案 android刻度盤控制元件原始碼 Android實現一個社群客戶端 android商品詳情頁上拉檢視詳情 基於RxJava+Retrofit2+Glide+ButterKnife的MVP模式漫畫app原始碼 an

android形狀屬性鎖屏密碼動態模糊kotlin專案抖音動畫記賬app視訊播放器原始碼

Android精選原始碼 直觀瞭解Android的“形狀”屬性如何影響Drawable的外觀。 一個靈活的視訊播放器, 可替換播放器核心。 android鎖屏輸入密碼功能原始碼 背景動態模糊方案,元件實現類對bitmap模糊處理的各類算... 簡單天氣,帶

android打飛機遊戲MVP句子迷App懸浮窗RxJava+Retrofit載入動畫定製計劃App原始碼

Android精選原始碼 微信打飛機 android進度設定載入效果原始碼 Android新手引導庫EasyGuide MVP-好看又好用的句子迷客戶端 XFloatView 一個簡易的懸浮窗實現方案 android高仿微信支付寶掃一掃的效果(弱

Android立體聲pcm的資料結構,左右聲道拆分左右聲道反轉

立體聲pcm資料結構 Android錄音預設錄製生成的是pcm檔案,假設我們設定取樣率為16K,錄音型別為AudioFormat.CHANNEL_IN_STEREO(立體聲錄音),資料型別為AudioFormat.ENCODING_PCM_16BIT。 則pcm檔案的資料結構大致為2byte左聲道、2byte

Android TextView使用HTML處理字型樣式顯示圖片

         學Android的時候突然想到一個問題:怎麼用TextView控制元件顯示帶有格式的文字,可否使用Html佈局?查了下Android 幫助文件,其提供了android.text.Html類和Html.ImageGetter、Html.TagHandler介

android 新聞應用Xposed模組酷炫的載入動畫下載模組九宮格控制元件原始碼

Android精選原始碼 靈活的ShadowView,可替代CardView使用 基於Tesseract-OCR實現自動掃描識別手機號 Android播放介面仿QQ音樂開源音樂播放器 新聞應用專案採用了 RxAndroid + Retrofit + Databinding 的 MVVM 架

android物理動畫Kotlin客戶端架構元件選單效果應用選擇器原始碼

Android精選原始碼 Android一個有趣的Android動畫互動設計 android可伸縮日曆效果原始碼 關於介面,全新的卡片風格,支援夜晚模式 Android 用 Kotlin 實現的基於物理的動畫 Android-自定義應用選擇器原