上面的字體會動態顯示,這種效果在我們啟動一個應用程序時,經常使用
代碼如下:
UIDemoActivity的代碼:
public class UIDemoActivity extends Activity { /** Called when the activity is first created. */ private Animation mAnimation; private int marginTop; private List<ImageView> mimageView; private LinearLayout mLinearLayout; private int[] imageId = {R.drawable.l, R.drawable.a, R.drawable.o, R.drawable.d, R.drawable.i, R.drawable.n, R.drawable.g}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //設置全屏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //設置無標題 this.requestWindowFeature(Window.FEATURE_NO_TITLE); //獲取屏幕的尺寸信息 DisplayMetrics dm=this.getResources().getDisplayMetrics(); marginTop=dm.heightPixels-100; //載入動畫 mAnimation=AnimationUtils.loadAnimation(this, R.anim.cache); mLinearLayout=new LinearLayout(this); mLinearLayout.setBackgroundResource(R.drawable.background); mimageView=new ArrayList<ImageView>(); imageInit(mLinearLayout); this.setContentView(mLinearLayout); startAnimation(); } private void imageInit(LinearLayout layout) { layout.setGravity(Gravity.CENTER_HORIZONTAL); //layout.setOrientation(LinearLayout.VERTICAL); //定義兩個布局參數 LinearLayout.LayoutParams param1=new LinearLayout.LayoutParams(40,40); param1.setMargins(0,marginTop, 0, 0); LinearLayout.LayoutParams param2=new LinearLayout.LayoutParams(40,40); param2.setMargins(0,marginTop, 0, 0); ImageView l = new ImageView(this); //應用LayoutParam l.setLayoutParams(param1); layout.addView(l); mimageView.add(l); ImageView o = new ImageView(this); o.setLayoutParams(param2); layout.addView(o); mimageView.add(o); ImageView a = new ImageView(this); a.setLayoutParams(param2); layout.addView(a); mimageView.add(a); ImageView d = new ImageView(this); d.setLayoutParams(param2); layout.addView(d); mimageView.add(d); ImageView i = new ImageView(this); i.setLayoutParams(param2); layout.addView(i); mimageView.add(i); ImageView n = new ImageView(this); n.setLayoutParams(param2); layout.addView(n); mimageView.add(n); ImageView g = new ImageView(this); g.setLayoutParams(param2); layout.addView(g); mimageView.add(g); } private void imageClear() { for(ImageView image:mimageView) { //將ImageView置為空 image.setImageDrawable(null); //清除緩存 image.destroyDrawingCache(); } } Handler handler=new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub switch(msg.what) { case 0: mimageView.get(0).setImageDrawable(UIDemoActivity.this.getResources().getDrawable(R.drawable.l)); mimageView.get(0).setAnimation(mAnimation); break; case 1: mimageView.get(1).setImageDrawable(UIDemoActivity.this.getResources().getDrawable(R.drawable.o)); mimageView.get(1).setAnimation(mAnimation); break; case 2: mimageView.get(2).setImageDrawable(UIDemoActivity.this.getResources().getDrawable(R.drawable.a)); mimageView.get(2).setAnimation(mAnimation); break; case 3: mimageView.get(3).setImageDrawable(UIDemoActivity.this.getResources().getDrawable(R.drawable.d)); mimageView.get(3).setAnimation(mAnimation); break; case 4: mimageView.get(4).setImageDrawable(UIDemoActivity.this.getResources().getDrawable(R.drawable.i)); mimageView.get(4).setAnimation(mAnimation); break; case 5: mimageView.get(5).setImageDrawable(UIDemoActivity.this.getResources().getDrawable(R.drawable.n)); mimageView.get(5).setAnimation(mAnimation); break; case 6: mimageView.get(6).setImageDrawable(UIDemoActivity.this.getResources().getDrawable(R.drawable.g)); mimageView.get(6).setAnimation(mAnimation); break; case 100: imageClear(); break; } } }; public void startAnimation() { new Thread() { public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } int runCount=0; while(true) { if(runCount<2) { for(int i=0;i<7;i++) { handler.sendEmptyMessage(i); try { Thread.sleep(400); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } handler.sendEmptyMessage(100); runCount++; } else { Intent intent=new Intent(UIDemoActivity.this,SecendActivity.class); UIDemoActivity.this.startActivity(intent); break; } } }; }.start(); } }
2、動畫xml
<?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.0" android:toXScale="1.2" android:fromYScale="0.0" android:toYScale="1.2" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:startOffset="-50" android:duration="100" /> </set>