Android UI开发第十五篇——分享一个登录缓冲界面
今天在网上发现了一个很漂亮的缓冲界面,在这里分享一下。主要还是用的android Anim。 publicclassMainextendsActivity{ privateAnimationanm; privateintmarginsTop; publicList<ImageView>images; publicLinearLayoutll; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); DisplayMetricsdm=this.getResources().getDisplayMetrics(); intheight=dm.heightPixels; marginsTop=height-100; anm=AnimationUtils.loadAnimation(this,R.anim.myanim); ll=newLinearLayout(this); ll.setBackgroundResource(R.drawable.background); images=newArrayList<ImageView>(); initImage(ll); playAnimation(); setContentView(ll); } privatevoidplayAnimation(){ newThread(){ @Override publicvoidrun() { try{ Thread.sleep(1000); }catch(InterruptedExceptione){ e.printStackTrace(); } intruncount=0; while(true) { if(runcount<2) { for(inti=0;i<=6;i++) { handler.sendEmptyMessage(i); try{ Thread.sleep(400); }catch(InterruptedExceptione){ e.printStackTrace(); } } runcount++; }else { handler.sendEmptyMessage(99); runcount=0; } } } }.start(); } Handlerhandler=newHandler(){ @Override publicvoidhandleMessage(Messagemsg){ switch(msg.what) { case0: images.get(0).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.l)); images.get(0).startAnimation(anm); break; case1: images.get(1).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.o)); images.get(1).startAnimation(anm); break; case2: images.get(2).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.a)); images.get(2).startAnimation(anm); break; case3: images.get(3).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.d)); images.get(3).startAnimation(anm); break; case4: images.get(4).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.i)); images.get(4).startAnimation(anm); break; case5: images.get(5).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.n)); images.get(5).setAnimation(anm); break; case6: images.get(6).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.g)); images.get(6).setAnimation(anm); break; case99: clearImage(); break; } } }; privatevoidclearImage() { for(ImageViewimage:images) { image.setImageDrawable(null); image.destroyDrawingCache(); } } privatevoidinitImage(LinearLayoutlayout){ layout.setGravity(Gravity.CENTER_HORIZONTAL); LinearLayout.LayoutParamsparam=newLinearLayout.LayoutParams(40,40); param.setMargins(30,marginsTop,0,0); LinearLayout.LayoutParamsparam2=newLinearLayout.LayoutParams(40,40); param2.setMargins(-5,marginsTop,0,0); ImageViewl=newImageView(this); l.setLayoutParams(param); layout.addView(l); images.add(l); ImageViewo=newImageView(this); o.setLayoutParams(param2); layout.addView(o); images.add(o); ImageViewa=newImageView(this); a.setLayoutParams(param2); layout.addView(a); images.add(a); ImageViewd=newImageView(this); d.setLayoutParams(param2); layout.addView(d); images.add(d); ImageViewi=newImageView(this); i.setLayoutParams(param2); layout.addView(i); images.add(i); ImageViewn=newImageView(this); n.setLayoutParams(param2); layout.addView(n); images.add(n); ImageViewg=newImageView(this); g.setLayoutParams(param2); layout.addView(g); images.add(g); } } <?xmlversion="1.0"encoding="utf-8"?> <setxmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <scaleandroid:interpolator="@android:anim/accelerate_interpolator" android:fromXScale="0.5" android:toXScale="1.2" android:fromYScale="0.5" android:toYScale="1.2" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:startOffset="-50" android:duration="100" /> </set> 代码地址:http://www.devdiv.com/thread-101608-1-1.html 本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/817279,如需转载请自行联系原作者