今天在网上发现了一个很漂亮的缓冲界面,在这里分享一下。主要还是用的android Anim。
- public class Main extends Activity {
-
private Animation anm;
-
private int marginsTop;
-
public List<ImageView> images;
-
public LinearLayout ll;
-
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
-
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
-
DisplayMetrics dm = this.getResources().getDisplayMetrics();
-
-
int height = dm.heightPixels;
-
marginsTop = height - 100;
-
anm = AnimationUtils.loadAnimation(this, R.anim.myanim);
-
ll = new LinearLayout(this);
- ll.setBackgroundResource(R.drawable.background);
-
-
images = new ArrayList<ImageView>();
- initImage(ll);
- playAnimation();
- setContentView(ll);
- }
-
private void playAnimation(){
-
new Thread(){
-
@Override
-
public void run()
- {
-
try {
-
Thread.sleep(1000);
-
} catch (InterruptedException e) {
- e.printStackTrace();
- }
-
int runcount=0;
-
while(true)
- {
-
if(runcount<2)
- {
-
for(int i=0;i<=6;i++)
- {
- handler.sendEmptyMessage(i);
-
try {
-
Thread.sleep(400);
-
} catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- runcount++;
-
}else
- {
-
handler.sendEmptyMessage(99);
-
runcount=0;
- }
-
-
- }
-
- }
-
- }.start();
- }
-
-
-
Handler handler=new Handler(){
-
-
@Override
-
public void handleMessage(Message msg) {
-
switch(msg.what)
- {
-
case 0:
-
images.get(0).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.l));
-
images.get(0).startAnimation(anm);
-
-
break;
-
case 1:
-
images.get(1).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.o));
-
images.get(1).startAnimation(anm);
-
break;
-
case 2:
-
images.get(2).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.a));
-
images.get(2).startAnimation(anm);
-
break;
-
case 3:
-
images.get(3).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.d));
-
images.get(3).startAnimation(anm);
-
break;
-
case 4:
-
images.get(4).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.i));
-
images.get(4).startAnimation(anm);
-
break;
-
case 5:
-
images.get(5).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.n));
-
images.get(5).setAnimation(anm);
-
break;
-
case 6:
-
images.get(6).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.g));
-
images.get(6).setAnimation(anm);
-
break;
-
case 99:
- clearImage();
-
break;
- }
- }
- };
-
private void clearImage()
- {
-
for(ImageView image:images)
- {
-
image.setImageDrawable(null);
- image.destroyDrawingCache();
- }
- }
-
private void initImage(LinearLayout layout) {
-
- layout.setGravity(Gravity.CENTER_HORIZONTAL);
-
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(40, 40);
-
param.setMargins(30, marginsTop, 0, 0);
-
-
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(40, 40);
-
param2.setMargins(-5, marginsTop, 0, 0);
-
-
ImageView l = new ImageView(this);
- l.setLayoutParams(param);
- layout.addView(l);
- images.add(l);
-
-
ImageView o = new ImageView(this);
- o.setLayoutParams(param2);
- layout.addView(o);
- images.add(o);
-
-
-
ImageView a = new ImageView(this);
- a.setLayoutParams(param2);
- layout.addView(a);
- images.add(a);
-
-
ImageView d = new ImageView(this);
- d.setLayoutParams(param2);
- layout.addView(d);
- images.add(d);
-
-
ImageView i = new ImageView(this);
- i.setLayoutParams(param2);
- layout.addView(i);
- images.add(i);
-
-
ImageView n = new ImageView(this);
- n.setLayoutParams(param2);
- layout.addView(n);
- images.add(n);
-
-
ImageView g = new ImageView(this);
- g.setLayoutParams(param2);
- layout.addView(g);
- images.add(g);
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
-
-
<set xmlns:android="http://schemas.android.com/apk/res/android"
-
android:shareInterpolator="false">
-
<scale android: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,如需转载请自行联系原作者