Android實(shí)現(xiàn)多張圖片合成加載動(dòng)畫(huà)
本文實(shí)例為大家分享了Android實(shí)現(xiàn)多張圖片合成加載動(dòng)畫(huà)的具體代碼,供大家參考,具體內(nèi)容如下
1、自定義ProgressDialog
public class MyProgressDialog extends ProgressDialog { ? ? private int procressLoadRes; ? ? private ImageView mImageView; ? ? private AnimationDrawable animationDrawable; ? ? public MyProgressDialog(Context context,int procressLoadRes) { ? ? ? ? super(context); ? ? ? ? this.procressLoadRes = procressLoadRes; ? ? } ? ? public MyProgressDialog(Context context, int theme, int procressLoadRes) { ? ? ? ? super(context, theme); ? ? ? ? this.procressLoadRes = procressLoadRes; ? ? } ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.layout_progress); ? ? ? ? mImageView = (ImageView) findViewById(R.id.image); ? ? ? ? //設(shè)置動(dòng)畫(huà)背景 ? ? ? ? mImageView.setBackgroundResource(procressLoadRes); ? ? ? ? //獲取動(dòng)畫(huà)對(duì)象,必須在上一步之后 ? ? ? ? animationDrawable = (AnimationDrawable) mImageView.getBackground(); ? ? ? ? mImageView.post(new Runnable() { ? ? ? ? ? ? @Override ? ? ? ? ? ? public void run() { ? ? ? ? ? ? ? ? //啟動(dòng)動(dòng)畫(huà) ? ? ? ? ? ? ? ? animationDrawable.start(); ? ? ? ? ? ? } ? ? ? ? }); ? ? } }
2、MyProgressDialog對(duì)應(yīng)的布局layout_progress.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ? ? android:orientation="vertical" ? ? android:layout_width="match_parent" ? ? android:layout_height="match_parent" ? ? android:gravity="center" ? ? android:background="@null"> ? ? <ImageView ? ? ? ? android:id="@+id/image" ? ? ? ? android:layout_width="wrap_content" ? ? ? ? android:layout_height="wrap_content" /> </LinearLayout>
3、使用自定義的MyProgressDialog
public class MainActivity extends AppCompatActivity { ? ? private Button button; ? ? private MyProgressDialog progressDialog; ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.activity_main); ? ? ? ? button = (Button) findViewById(R.id.button); ? ? ? ? //傳入style和anim文件 ? ? ? ? progressDialog = new MyProgressDialog(this,R.style.dialog,R.anim.loading); ? ? ? ? button.setOnClickListener(new View.OnClickListener() { ? ? ? ? ? ? @Override ? ? ? ? ? ? public void onClick(View view) { ? ? ? ? ? ? ? ? progressDialog.show(); ? ? ? ? ? ? } ? ? ? ? }); ? ? } }
4、使用時(shí)需要一個(gè)style文件和一個(gè)anim文件
style.xml
<style name="dialog" parent="@android:style/Theme.Dialog"> ? ? ? ? <!--邊框--> ? ? ? ? <item name="android:windowFrame">@null</item> ? ? ? ? <!--是否浮現(xiàn)在activity之上--> ? ? ? ? <item name="android:windowIsFloating">true</item> ? ? ? ? <!--半透明--> ? ? ? ? <item name="android:windowIsTranslucent">false</item> ? ? ? ? <!--無(wú)標(biāo)題--> ? ? ? ? <item name="android:windowNoTitle">true</item> ? ? ? ? <!--背景透明去掉背景色邊框也就去掉了 --> ? ? ? ? <item name="android:windowBackground">@color/transparent</item>? ? ? ? ? <!--模糊--> ? ? ? ? <item name="android:backgroundDimEnabled">false</item> ? ? </style>
anim文件夾下的loading.xml文件
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> ? ? <item android:drawable="@mipmap/loading1" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading2" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading3" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading4" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading5" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading6" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading7" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading8" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading9" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading10" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading11" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading12" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading13" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading14" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading15" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading16" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading17" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading18" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading19" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading20" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading21" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading22" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading23" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading24" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading25" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading26" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading27" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading30" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading31" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading32" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading33" android:duration="100"/> ? ? <item android:drawable="@mipmap/loading34" android:duration="100"/> </animation-list>
在color.xml文件中添加
<color name="transparent">#00ffffff</color>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
AsyncTask陷阱之:Handler,Looper與MessageQueue的詳解
本篇文章是對(duì)Handler,Looper與MessageQueue進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android開(kāi)發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法,較為詳細(xì)的分析了Android刪除通話記錄的原理、步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10Android網(wǎng)絡(luò)監(jiān)聽(tīng)和網(wǎng)絡(luò)判斷示例介紹
大家好,本篇文章主要講的是Android網(wǎng)絡(luò)監(jiān)聽(tīng)和網(wǎng)絡(luò)判斷示例介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12超簡(jiǎn)單Android集成華為HMS Scankit 掃碼SDK實(shí)現(xiàn)掃一掃二維碼
這篇文章主要介紹了超簡(jiǎn)單Android集成華為HMS Scankit 掃碼SDK實(shí)現(xiàn)掃一掃二維碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Kotlin圖文并茂講解續(xù)體與續(xù)體攔截器和調(diào)度器
這篇文章主要介紹了Kotlin開(kāi)發(fā)中續(xù)體與續(xù)體攔截器和調(diào)度器的相關(guān)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Android AlertDialog對(duì)話框用法示例
這篇文章主要介紹了Android AlertDialog對(duì)話框用法,結(jié)合實(shí)例形式分析了AlertDialog對(duì)話框的功能及常見(jiàn)使用技巧,需要的朋友可以參考下2016-06-06android實(shí)現(xiàn)背景音樂(lè)播放功能
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)背景音樂(lè)播放功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Android開(kāi)發(fā)基礎(chǔ)簡(jiǎn)化Toast調(diào)用方法詳解
這篇文章主要為大家介紹了Android開(kāi)發(fā)基礎(chǔ)簡(jiǎn)化Toast調(diào)用方法的相關(guān)資料,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android自定義控件簡(jiǎn)單實(shí)現(xiàn)側(cè)滑菜單效果
這篇文章主要為大家詳細(xì)介紹了Android自定義控件打造史上最簡(jiǎn)單的側(cè)滑菜單的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06