日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 编程下帧动画在 Activity 启动时自动运行的几种方式

發布時間:2024/9/5 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 编程下帧动画在 Activity 启动时自动运行的几种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android 開發過程中部分 Activity 在顯示的時候就要求給用戶顯示一個進度框來改善用戶體驗,比如:Activity 在啟動的時候就去聯網請求數據、讀取數據庫內容等。進度框顯示樣式如下,采用幀動畫,而非 ProgressBar。幀動畫的啟動方式有四種,代碼分別如下:

?

? 第一種方式在 Activity 啟動時自動運行動畫

package cn.sunzn.anim;import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.ViewTreeObserver.OnPreDrawListener; import android.widget.ImageView;public class AnimActivity extends Activity {/*** 動畫控件*/private ImageView mLoading;private AnimationDrawable mLoadingAinm;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}/*** 完成初始化*/private void init() {initView();}/*** 初始化視圖*/private void initView() {mLoading = (ImageView) findViewById(R.id.loading);mLoading.setBackgroundResource(R.drawable.progressbar_activity_waiting);mLoadingAinm = (AnimationDrawable) mLoading.getBackground();mLoading.getViewTreeObserver().addOnPreDrawListener(listener);}/*** 當一個視圖樹將要繪制時產生事件,可以添加一個其事件處理函數,注意結尾返回的值*/OnPreDrawListener listener = new OnPreDrawListener() {public boolean onPreDraw() {mLoadingAinm.start();return true;}};}

?

? 第二種方式在 Activity 啟動時自動運行動畫

package cn.sunzn.anim;import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.AsyncTask; import android.os.Bundle; import android.widget.ImageView;public class AnimActivity extends Activity {/*** 動畫控件*/private ImageView mLoading;/*** 數據加載動畫*/private AnimationDrawable mLoadingAinm;/*** 異步類執行啟動動畫*/private RunAnim runAnim;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}/*** 完成初始化*/private void init() {initView();}/*** 初始化視圖*/private void initView() {mLoading = (ImageView) findViewById(R.id.loading);mLoading.setBackgroundResource(R.drawable.progressbar_activity_waiting);mLoadingAinm = (AnimationDrawable) mLoading.getBackground();runAnim = new RunAnim();runAnim.execute("");}/*** 異步類執行動畫*/class RunAnim extends AsyncTask<String, String, String> {protected String doInBackground(String... params) {if (!mLoadingAinm.isRunning()) {mLoadingAinm.stop();mLoadingAinm.start();}return "";}}}

?

? 第三種方式在 Activity 啟動時自動運行動畫

package cn.sunzn.anim;import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.widget.ImageView;public class AnimActivity extends Activity {/*** 動畫控件*/private ImageView mLoading;/*** 數據加載動畫*/private AnimationDrawable mLoadingAinm;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}/*** 完成初始化*/private void init() {initView();}/*** 初始化視圖*/private void initView() {mLoading = (ImageView) findViewById(R.id.loading);mLoading.setBackgroundResource(R.drawable.progressbar_activity_waiting);mLoadingAinm = (AnimationDrawable) mLoading.getBackground();mLoading.post(new Runnable() {public void run() {mLoadingAinm.start();}});}}

?

?? 第四種方式在 Activity 啟動時自動運行動畫

package cn.sunzn.anim;import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.widget.ImageView;public class AnimActivity extends Activity {/*** 動畫控件*/private ImageView mLoading;/*** 數據加載動畫*/private AnimationDrawable mLoadingAinm;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}/*** 完成初始化*/private void init() {initView();}/*** 初始化視圖*/private void initView() {mLoading = (ImageView) findViewById(R.id.loading);mLoading.setBackgroundResource(R.drawable.progressbar_activity_waiting);mLoadingAinm = (AnimationDrawable) mLoading.getBackground();}/*** 窗體焦點改變時執行動畫*/public void onWindowFocusChanged(boolean hasFocus) {mLoadingAinm.start();super.onWindowFocusChanged(hasFocus);}}

?

轉載于:https://www.cnblogs.com/sunzn/archive/2013/05/24/3096760.html

總結

以上是生活随笔為你收集整理的Android 编程下帧动画在 Activity 启动时自动运行的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。