Android實(shí)現(xiàn)多張圖片合成加載動(dòng)畫
本文實(shí)例為大家分享了Android實(shí)現(xiàn)多張圖片合成加載動(dòng)畫的具體代碼,供大家參考,具體內(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)畫背景
? ? ? ? mImageView.setBackgroundResource(procressLoadRes);
? ? ? ? //獲取動(dòng)畫對(duì)象,必須在上一步之后
? ? ? ? animationDrawable = (AnimationDrawable) mImageView.getBackground();
? ? ? ? mImageView.post(new Runnable() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void run() {
? ? ? ? ? ? ? ? //啟動(dòng)動(dòng)畫
? ? ? ? ? ? ? ? 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> ? ? ? ? <!--無標(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-05
Android開發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法,較為詳細(xì)的分析了Android刪除通話記錄的原理、步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10
Android網(wǎng)絡(luò)監(jiān)聽和網(wǎng)絡(luò)判斷示例介紹
大家好,本篇文章主要講的是Android網(wǎng)絡(luò)監(jiān)聽和網(wǎng)絡(luò)判斷示例介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
超簡(jiǎn)單Android集成華為HMS Scankit 掃碼SDK實(shí)現(xiàn)掃一掃二維碼
這篇文章主要介紹了超簡(jiǎn)單Android集成華為HMS Scankit 掃碼SDK實(shí)現(xiàn)掃一掃二維碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Kotlin圖文并茂講解續(xù)體與續(xù)體攔截器和調(diào)度器
這篇文章主要介紹了Kotlin開發(fā)中續(xù)體與續(xù)體攔截器和調(diào)度器的相關(guān)使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Android AlertDialog對(duì)話框用法示例
這篇文章主要介紹了Android AlertDialog對(duì)話框用法,結(jié)合實(shí)例形式分析了AlertDialog對(duì)話框的功能及常見使用技巧,需要的朋友可以參考下2016-06-06
Android開發(fā)基礎(chǔ)簡(jiǎn)化Toast調(diào)用方法詳解
這篇文章主要為大家介紹了Android開發(fā)基礎(chǔ)簡(jiǎn)化Toast調(diào)用方法的相關(guān)資料,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android自定義控件簡(jiǎn)單實(shí)現(xiàn)側(cè)滑菜單效果
這篇文章主要為大家詳細(xì)介紹了Android自定義控件打造史上最簡(jiǎn)單的側(cè)滑菜單的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06

