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;//结束线程
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。