Android使用TransitionDrawable渐变切换多张图片
使用TransitionDrawable渐变切换多张图片,供大家参考,具体内容如下
1、定义变量
privateintchange=0;//记录下标
privateint[]ids=newint[]{R.drawable.anim_one,R.drawable.anim_two,R.drawable.anim_three};
privateDrawable[]drawables;//图片集合
privateThreadmThread;//线程
privatebooleanmThreadFlag=true;//线程结束标志符
2、填充图片
privatevoidinitDrawableView(){
//填充图片
drawables=newDrawable[ids.length];
for(inti=0;i=Build.VERSION_CODES.LOLLIPOP){
drawables[i]=getDrawable(ids[i]);
}else{
drawables[i]=getResources().getDrawable(ids[i]);
}
}
}
3、定义hander
privateHandlermHandler=newHandler(newHandler.Callback(){
@Override
publicbooleanhandleMessage(Messagemsg){
intduration=msg.arg1;
TransitionDrawabletransitionDrawable=newTransitionDrawable(newDrawable[]{drawables[change%ids.length],
drawables[(change+1)%ids.length]});
change++;//改变标识位置
repeatPlay.setBackground(transitionDrawable);
transitionDrawable.startTransition(duration);
returnfalse;
}
});
4、开启线程发送消息,让transition一直在改变
privateclassMyRunnableimplementsRunnable{
@Override
publicvoidrun(){
//这个while(true)是做死循环
while(mThreadFlag){
intduration=5000;//改变的间隔
Messagemessage=mHandler.obtainMessage();
message.arg1=duration;
mHandler.sendMessage(message);
try{
Thread.sleep(duration);
//隔duration秒发送一次
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
}
5、在onCreate()中开启线程,改变transition,切换图片
mThread=newThread(newMyRunnable()); mThread.start();
6、在onDestroy()中结束线程
mThreadFlag=false;//结束线程
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。