欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android結(jié)合xml實現(xiàn)幀動畫

 更新時間:2021年05月22日 09:48:26   作者:早起的年輕人  
將一組動作相近的圖片組合在一起,然后按照一定的時間來播放,就會形成一個動畫,我們可以稱之為幀動畫。在 Android 中可通過結(jié)合 xml 的方式來輕松實現(xiàn)。

1 創(chuàng)建 xml 動畫文件

在 Android 項目工程中的 drawable 目錄下創(chuàng)建動畫文件,如我這里創(chuàng)建的 loading.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"
>
    <item
        android:drawable="@mipmap/ani_1"
        android:duration="800" />
    <item
        android:drawable="@mipmap/ani_2"
        android:duration="800" />
    <item
        android:drawable="@mipmap/ani_3"
        android:duration="800" />
    <item
        android:drawable="@mipmap/ani_4"
        android:duration="800" />
    <item
        android:drawable="@mipmap/ani_5"
        android:duration="800" />
    <item
        android:drawable="@mipmap/ani_6"
        android:duration="800" />
    <item
        android:drawable="@mipmap/ani_7"
        android:duration="800" />
    <item
        android:drawable="@mipmap/ani_8"
        android:duration="800" />
</animation-list>

設(shè)置android:oneshot屬性為true,表示此次動畫只執(zhí)行一次,最后停留在最后一幀。設(shè)置為false則動畫循環(huán)播放。文件可以添加為Image背景,觸發(fā)的時候播放。

2 加載使用

在你的 Activity 中,直接將這個動畫文件使用一個 ImageView 來加載顯示,代碼如下:

public class MainActivity extends AppCompatActivity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		ImageView lImageView = findViewById(R.id.imageview);
		//設(shè)置圖片
		lImageView.setImageResource(R.drawable.loading);
		//動
		AnimationDrawable lAnimationDrawable = (AnimationDrawable) lImageView.getDrawable();
		
		lAnimationDrawable.start();
		
	}
}

3 聊一聊 AnimationDrawable

Drawable animation可以加載Drawable資源實現(xiàn)幀動畫。AnimationDrawable是實現(xiàn)Drawable animations的基本類

有時 調(diào)用了 AnimationDrawable.start方法來啟動動畫,但是并沒有出現(xiàn)效果。

3.1 使用 ViewTreeObserver

ViewTreeObserver.OnPreDrawListener lOnPreDrawListener=new ViewTreeObserver.OnPreDrawListener(){
	@Override
	public boolean onPreDraw() {
		lAnimationDrawable.start();
		return true; //注意此行返回的值
	}
};

//綁定視圖觀察者
lImageView.getViewTreeObserver().addOnPreDrawListener(lOnPreDrawListener);

3.2 使用 RunAnim

public class MainActivity extends AppCompatActivity {
	

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		start3();
	}

	private AnimationDrawable mAnimationDrawable;
	
	public void start3() {
		ImageView lImageView = findViewById(R.id.imageview);
		//設(shè)置圖片
		lImageView.setImageResource(R.drawable.loading);
		//動
		mAnimationDrawable = (AnimationDrawable) lImageView.getDrawable();
		
		RunAnim runAnim = new RunAnim();
		runAnim.execute("");
		
		
	}
	
	class RunAnim extends AsyncTask<String, String, String> {
		@Override
		protected String doInBackground(String... params) {
			if (!mAnimationDrawable.isRunning()) {
				mAnimationDrawable.stop();
				mAnimationDrawable.start();
			}
			return "";
		}
	}
}

3.3 在 Activity 的 onWindowFocusChanged 中調(diào)用

@Override
public void onWindowFocusChanged(boolean hasFocus)
{
	mAnimationDrawable.start();
	super.onWindowFocusChanged(hasFocus);
}

完畢

源碼在這里

以上就是Android結(jié)合xml實現(xiàn)幀動畫的詳細(xì)內(nèi)容,更多關(guān)于Android 實現(xiàn)幀動畫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android 基礎(chǔ)入門教程——開發(fā)環(huán)境搭建

    Android 基礎(chǔ)入門教程——開發(fā)環(huán)境搭建

    這篇文章主要介紹了Android 如何搭建開發(fā)環(huán)境,文中講解非常細(xì)致,幫助大家開始學(xué)習(xí)Android,想要學(xué)習(xí)Android的朋友可以了解下
    2020-06-06
  • Jetpack Compose修飾符專項精講

    Jetpack Compose修飾符專項精講

    在今年的Google/IO大會上,亮相了一個全新的 Android 原生 UI 開發(fā)框架-Jetpack Compose, 與蘋果的SwiftIUI一樣,Jetpack Compose是一個聲明式的UI框架,它可簡化并加快Android上的界面開發(fā),使用更少的代碼、強(qiáng)大的工具和直觀的 Kotlin API,快速讓應(yīng)用生動而精彩
    2022-10-10
  • AndroidStudio3.6的卸載安裝,Gradle持續(xù)下載/Gradle Build失敗等問題

    AndroidStudio3.6的卸載安裝,Gradle持續(xù)下載/Gradle Build失敗等問題

    這篇文章主要介紹了AndroidStudio3.6的卸載安裝,Gradle持續(xù)下載/Gradle Build失敗等問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Android EditText限制輸入字符的方法總結(jié)

    Android EditText限制輸入字符的方法總結(jié)

    這篇文章主要介紹了 Android EditText限制輸入字符的方法總結(jié)的相關(guān)資料,這里提供了五種方法來實現(xiàn)并進(jìn)行比較,需要的朋友可以參考下
    2017-07-07
  • android Socket實現(xiàn)簡單聊天小程序

    android Socket實現(xiàn)簡單聊天小程序

    這篇文章主要為大家詳細(xì)介紹了android Socket實現(xiàn)簡單聊天小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Flutter質(zhì)感設(shè)計之直接輸入

    Flutter質(zhì)感設(shè)計之直接輸入

    這篇文章主要為大家詳細(xì)介紹了Flutter質(zhì)感設(shè)計之直接輸入,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 深入分析Android NFC技術(shù) android nfc開發(fā)

    深入分析Android NFC技術(shù) android nfc開發(fā)

    本篇文章我們對android開發(fā)中nfc技術(shù)做了全面的原理分析以及實現(xiàn)過程,需要的讀者們一起參考一下吧。
    2017-11-11
  • Android開發(fā)入門之Service用法分析

    Android開發(fā)入門之Service用法分析

    這篇文章主要介紹了Android中Service用法,較為詳細(xì)的分析了Service的功能、相關(guān)函數(shù)使用及注意事項,需要的朋友可以參考下
    2016-07-07
  • Android數(shù)據(jù)共享 sharedPreferences 的使用方法

    Android數(shù)據(jù)共享 sharedPreferences 的使用方法

    這篇文章主要介紹了Android數(shù)據(jù)共享 sharedPreferences 的使用方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解使用sharedpreferences,需要的朋友可以參考下
    2017-10-10
  • Android視頻點播的實現(xiàn)代碼(邊播邊緩存)

    Android視頻點播的實現(xiàn)代碼(邊播邊緩存)

    本篇文章主要結(jié)合了Android視頻點播的實現(xiàn)代碼(邊播邊緩存),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論