Android使用TransitionDrawable漸變切換多張圖片
使用TransitionDrawable漸變切換多張圖片,供大家參考,具體內(nèi)容如下
1、定義變量
private int change = 0;//記錄下標(biāo) private int[] ids = new int[]{R.drawable.anim_one, R.drawable.anim_two, R.drawable.anim_three}; private Drawable[] drawables;//圖片集合 private Thread mThread;//線程 private boolean mThreadFlag = true;//線程結(jié)束標(biāo)志符
2、填充圖片
private void initDrawableView() { //填充圖片 drawables = new Drawable[ids.length]; for (int i = 0; i < ids.length; i++) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { drawables[i] = getDrawable(ids[i]); } else { drawables[i] = getResources().getDrawable(ids[i]); } } }
3、定義hander
private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { int duration = msg.arg1; TransitionDrawable transitionDrawable = new TransitionDrawable(new Drawable[]{drawables[change % ids.length], drawables[(change + 1) % ids.length]}); change++;//改變標(biāo)識(shí)位置 repeatPlay.setBackground(transitionDrawable); transitionDrawable.startTransition(duration); return false; } });
4、開啟線程發(fā)送消息,讓transition一直在改變
private class MyRunnable implements Runnable { @Override public void run() { //這個(gè)while(true)是做死循環(huán) while (mThreadFlag) { int duration = 5000;//改變的間隔 Message message = mHandler.obtainMessage(); message.arg1 = duration; mHandler.sendMessage(message); try { Thread.sleep(duration); //隔duration秒發(fā)送一次 } catch (InterruptedException e) { e.printStackTrace(); } } } }
5、在onCreate()中開啟線程,改變transition,切換圖片
mThread = new Thread(new MyRunnable()); mThread.start();
6、在onDestroy()中結(jié)束線程
mThreadFlag = false;//結(jié)束線程
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android實(shí)現(xiàn)顏色漸變動(dòng)畫效果
- Android?App頁(yè)面滑動(dòng)標(biāo)題欄顏色漸變?cè)斀?/a>
- Android簡(jiǎn)單實(shí)現(xiàn)一個(gè)顏色漸變的ProgressBar的方法
- Android Textview實(shí)現(xiàn)顏色漸變滾動(dòng)效果
- Android 微信6.1 tab欄圖標(biāo)和字體顏色漸變的實(shí)現(xiàn)
- android中實(shí)現(xiàn)背景圖片顏色漸變方法
- Kotlin使用TransitionDrawable實(shí)現(xiàn)顏色漸變效果流程講解
相關(guān)文章
android自定義ViewPager水平滑動(dòng)彈性效果
這篇文章主要為大家詳細(xì)介紹了android自定義ViewPager水平滑動(dòng)彈性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12android實(shí)現(xiàn)播放網(wǎng)絡(luò)視頻
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)播放網(wǎng)絡(luò)視頻,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04android IntentService實(shí)現(xiàn)原理及內(nèi)部代碼分享
android IntentService實(shí)現(xiàn)原理及內(nèi)部代碼分享,需要的朋友可以參考一下2013-06-06Android中使用DownloadManager類來管理數(shù)據(jù)下載的教程
這篇文章主要介紹了Android中使用DownloadManager類來管理數(shù)據(jù)下載的教程,針對(duì)HTTP下文件的下載與保存地址指定等基礎(chǔ)操作作出了詳細(xì)講解,需要的朋友可以參考下2016-04-04Android常用定時(shí)器的實(shí)現(xiàn)方式
我們?cè)陂_發(fā)中時(shí)常需要寫一些定時(shí)的任務(wù),比如每5秒執(zhí)行一次,下面這篇文章主要給大家介紹了關(guān)于Android常用定時(shí)器的實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09android通過Location API顯示地址信息的實(shí)現(xiàn)方法
這篇文章主要介紹了android通過Location API顯示地址信息的方法,涉及Android操作Geocoder類獲取地址信息的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Android?進(jìn)入Activity時(shí)如何禁止彈出軟鍵盤輸入法
這篇文章主要介紹了Android?進(jìn)入Activity時(shí)如何禁止彈出軟鍵盤輸入法,文章圍繞主題展開具體內(nèi)容,需要的小伙伴可以參考一下2022-05-05Android 桌面快捷方式實(shí)現(xiàn)實(shí)例詳解
這篇文章主要為大家介紹了Android 桌面快捷方式實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11