萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> 教你制作漂亮的Android之緩存界面

教你制作漂亮的Android之緩存界面

教你制作漂亮的Android之緩存界面 三聯

  上面的字體會動態顯示,這種效果在我們啟動一個應用程序時,經常使用

  代碼如下:

  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>
copyright © 萬盛學電腦網 all rights reserved