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é)束線程
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android評(píng)論功能的實(shí)現(xiàn)過程
這篇文章為大家詳細(xì)介紹了Android評(píng)論功能的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
Android中Java instanceof關(guān)鍵字全面解析
instanceof關(guān)鍵字用于判斷一個(gè)引用類型變量所指向的對(duì)象是否是一個(gè)類(或接口、抽象類、父類)的實(shí)例.這篇文章主要介紹了Android中Java instanceof關(guān)鍵字全面解析的相關(guān)資料,需要的朋友可以參考下2016-07-07
Android軟件啟動(dòng)動(dòng)畫及動(dòng)畫結(jié)束后跳轉(zhuǎn)的實(shí)現(xiàn)方法
這篇文章主要介紹了Android軟件啟動(dòng)動(dòng)畫及動(dòng)畫結(jié)束后跳轉(zhuǎn)的實(shí)現(xiàn)方法,實(shí)例分析了Android圖片播放及定時(shí)器的相關(guān)使用技巧,非常具有使用價(jià)值,需要的朋友可以參考下2015-10-10
在Android app中實(shí)現(xiàn)九(n)宮格圖片連續(xù)滑動(dòng)效果
這篇文章主要介紹了在Android app中實(shí)現(xiàn)九(n)宮格圖片連續(xù)滑動(dòng)效果的方法,作者舉了鳳凰新聞應(yīng)用的例子,同理功能圖標(biāo)也可以利用這樣的滑動(dòng)效果,需要的朋友可以參考下2016-02-02
Android RecyclerView實(shí)現(xiàn)下拉刷新和上拉加載更多
這篇文章主要為大家詳細(xì)介紹了Android RecyclerView實(shí)現(xiàn)下拉刷新和上拉加載更多,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
AndroidStudio簡單實(shí)現(xiàn)BMI計(jì)算
這篇文章主要為大家詳細(xì)介紹了AndroidStudio簡單實(shí)現(xiàn)BMI計(jì)算,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
Android 系統(tǒng)服務(wù)TelecomService啟動(dòng)過程原理分析
這篇文章主要介紹了Android 系統(tǒng)服務(wù)TelecomService啟動(dòng)過程原理分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

