最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 幀動畫使用詳情

 更新時間:2021年08月30日 17:16:50   作者:AnRFDev  
這篇文章主要介紹本文介紹使用AnimationDrawable類來實現動畫效果,需要的朋友可以參考下文

Android 幀動畫

1、幀動畫

使用一系列不同的圖片,然后像一卷膠卷一樣按順序播放,這是一種傳統(tǒng)的動畫,也可稱為幀動畫。也可以比喻為像一卷膠卷一樣按順序播放。
播放起來,有點像在看gif圖。

本文介紹使用AnimationDrawable類來實現動畫效果。
為了開發(fā)方便,我們可以在xml中指定動畫各個幀的信息。

2、使用背景圖片

這是第一個例子。我們先準備4張圖片(圖片請自備)放進res/drawable/中。
在這個目錄里,再新建一個文件ani_frame_1.xml。

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ani_frame_1"
    android:oneshot="false">
    <item
        android:drawable="@drawable/f_zan_1"
        android:duration="250" />
    <item
        android:drawable="@drawable/f_zan_4"
        android:duration="250" />
    <item
        android:drawable="@drawable/f_zan_3"
        android:duration="250" />
    <item
        android:drawable="@drawable/f_zan_2"
        android:duration="250" />
</animation-list>

可以看到根節(jié)點<animation-list>包含了4個item。每個子節(jié)點都定義了一個幀。
duration是這一幀的時常(毫秒)。drawable是指定可繪制資源。oneshot="false"表示讓動畫一直循環(huán)播放下去。
這樣動畫資源就準備好了。

在layout中準備一個ImageView,用它來顯示動畫

<ImageView
    android:id="@+id/iv1"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginTop="60dp" />

在activity中操作這個ImageView。把動畫資源設置為背景。

var mFrameIv: ImageView? = null
// override fun onCreate(savedInstanceState: Bundle?)
mFrameIv = findViewById(R.id.iv1)
mFrameIv!!.setBackgroundResource(R.drawable.ani_frame_1)

把ImageView的背景強轉為AnimationDrawable。播放動畫,要用AnimationDrawable.start()方法。

var mFrameIv: ImageView? = null
// override fun onCreate(savedInstanceState: Bundle?)
mFrameIv = findViewById(R.id.iv1)
mFrameIv!!.setBackgroundResource(R.drawable.ani_frame_1)

當動畫正在播放時,調用start()方法是不會影響當前播放的。

停止動畫,AnimationDrawable.stop()

val ani: AnimationDrawable = mFrameIv!!.background as AnimationDrawable
ani.stop()

stop()方法可以讓動畫停止在當前幀。再調用start()的話,會從頭開始播放。

3、使用src

前面我們利用的是ImageView的背景資源。我們也可以使用src
準備另一個動畫資源ani_frame_2。

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ani_frame_1"
    android:oneshot="true">
    <item
        android:drawable="@drawable/f_zan_1"
        android:duration="250" />
    <item
        android:drawable="@drawable/f_zan_4"
        android:duration="250" />
    <item
        android:drawable="@drawable/f_zan_3"
        android:duration="250" />
    <item
        android:drawable="@drawable/f_zan_2"
        android:duration="250" />
</animation-list>

android:oneshot="true",動畫播放1次后就會自行停止并保持在最后一幀。

! 注意,停止后并不是回到第一幀。

然后在layout中,把它設置為ImageView的src。

<ImageView
    android:id="@+id/iv1"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginTop="60dp"
    android:src="@drawable/ani_frame_2" />

在activity中就不是操作ImageView的background了,而是操作drawable。

// 啟動
val ani: AnimationDrawable = frameIv.drawable as AnimationDrawable
ani.start()

// 停止
val ani: AnimationDrawable = frameIv.drawable as AnimationDrawable
ani.stop()

可以看到,2個例子中都需要操作AnimationDrawable。
請務必注意,對 AnimationDrawable.start() 方法不能在 Activity 的 onCreate() 方法期間調用,因為 AnimationDrawable 尚未完全附加到窗口。如果想立即播放動畫而無需互動,那么可能需要從 Activity 中的 onStart() 方法進行調用,該方法會在 Android 在屏幕上呈現視圖時調用。

AnimationDrawable類有幾個屬性可以注意一下

屬性 說明
isOneShot 是否只播放1次,與xml中的android:oneshot對應
isRunning 當前動畫是否正在播放
numberOfFrames 幀的數量

到此這篇關于Android 幀動畫使用詳情的文章就介紹到這了,更多相關Android 幀動畫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Kotlin中空判斷與問號和感嘆號標識符使用方法

    Kotlin中空判斷與問號和感嘆號標識符使用方法

    最近使用kotlin重構項目,遇到了一個小問題,在Java中,可能會遇到判斷某個對象是否為空,為空執(zhí)行一段邏輯,不為空執(zhí)行另外一段邏輯,下面這篇文章主要給大家介紹了關于Kotlin中空判斷與問號和感嘆號標識符處理操作的相關資料,需要的朋友可以參考下
    2022-12-12
  • Android編程之TabWidget選項卡用法實例分析

    Android編程之TabWidget選項卡用法實例分析

    這篇文章主要介紹了Android編程之TabWidget選項卡用法,結合實例形式較為詳細的分析了TabWidget選項卡的具體實現技巧與使用注意事項,需要的朋友可以參考下
    2015-12-12
  • Android GridView添加頭部問題的解決

    Android GridView添加頭部問題的解決

    這篇文章主要介紹了Android GridView添加頭部問題的解決,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Android彈窗ListPopupWindow的簡單應用詳解

    Android彈窗ListPopupWindow的簡單應用詳解

    這篇文章主要為大家詳細介紹了Android彈窗ListPopupWindow的簡單應用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Android自定義定時鬧鐘開發(fā)

    Android自定義定時鬧鐘開發(fā)

    這篇文章主要為大家詳細介紹了Android自定義定時鬧鐘開發(fā),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 基于Android10渲染Surface的創(chuàng)建過程

    基于Android10渲染Surface的創(chuàng)建過程

    這篇文章主要介紹了基于Android10渲染Surface的創(chuàng)建過程,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Android webview手動校驗https證書(by 星空武哥)

    Android webview手動校驗https證書(by 星空武哥)

    有些時候由于Android系統(tǒng)的bug或者其他的原因,導致我們的webview不能驗證通過我們的https證書,最明顯的例子就是華為手機mate7升級到Android7.0后,手機有些網站打不開了,而更新了webview的補丁后就沒問題了
    2017-09-09
  • Android自定義實現一個省份簡稱鍵盤

    Android自定義實現一個省份簡稱鍵盤

    這篇文章主要為大家詳細介紹了Android如何自定義實現一個省份簡稱鍵盤,可以用在車牌輸入等地方,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-06-06
  • Android開發(fā)筆記之Android中數據的存儲方式(一)

    Android開發(fā)筆記之Android中數據的存儲方式(一)

    這篇文章主要介紹了Android開發(fā)筆記之Android中數據的存儲方式(一) 的相關資料,需要的朋友可以參考下
    2016-01-01
  • Android ViewFlipper簡單應用

    Android ViewFlipper簡單應用

    這篇文章主要為大家詳細介紹了Android ViewFlipper簡單應用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論

哈密市| 高唐县| 左贡县| 乌鲁木齐市| 石家庄市| 湖州市| 杭锦旗| 怀来县| 精河县| 离岛区| 吴旗县| 栖霞市| 建德市| 凉城县| 梓潼县| 宿松县| 桂阳县| 茌平县| 孟连| 乐昌市| 漯河市| 阿克陶县| 布尔津县| 余干县| 辛集市| 红河县| 明光市| 辰溪县| 瑞丽市| 黑河市| 阳山县| 云南省| 托克逊县| 台州市| 乃东县| 抚顺市| 南靖县| 咸阳市| 泾源县| 深水埗区| 青岛市|