Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android--利用Animation.RELATIVE_TO_SELF做出個性化的動畫

android--利用Animation.RELATIVE_TO_SELF做出個性化的動畫

編輯:關於Android編程

在Android開發中,Animation是用來給控件制作效果的。大多數的控件都可以用這個類,這個類包含了4種基本動作,分別為移動,旋轉,淡入淡出,縮放。

使用Animation的兩種方式:

方式一:在代碼中創建、設置以及啟動動畫(移動TranslateAnimation/旋轉RotateAnimation/淡入淡出AlphaAnimation/縮放ScaleAnimation),這樣的優點是可以方便調試程序效果;

方式二:在xml中對控件的屬性做設置,好處是代碼的重用性比較高,缺點是不方便調試。

下面我們重點針對代碼創建的方式來舉例:

在開始示例之前我們普及兩個非常重要的參考標准:Animation.RELATIVE_TO_SELF(相對於自身)、Animation.RELATIVE_TO_PARENT(相對於父控件(容器))。

1、imageView控件由完全透明到完全不透明變化,持續時間為0.2s;

	private void toVisibleAnim(View view)
	{
		AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
		alphaAnimation.setDuration(200);
		view.startAnimation(alphaAnimation);
	}

2、imageView控件由原來大小尺寸沿自身尺寸中心逐漸縮放到0,持續時間為0.2s;

	private void toHideAnim(View view)
	{
		ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
		scaleAnimation.setDuration(200);
		view.startAnimation(scaleAnimation);
	}

3、imageView控件以自身中心為圓心旋轉90度,持續時間為0.2s;

	private void rotateAnim(View view)
	{
		view.setVisibility(View.VISIBLE);
		RotateAnimation rotateAnimation = new RotateAnimation(0, 90, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
		rotateAnimation.setDuration(200);
		view.startAnimation(rotateAnimation);
	}

4、imageView控件從自身位置的最右端開始向左水平滑動了自身的寬度,持續時間為0.2s;

	private void showScrollAnim(View view) {
		view.setVisibility(View.VISIBLE);
		TranslateAnimation mShowAction = new TranslateAnimation(
				Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF,
				0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
				Animation.RELATIVE_TO_SELF, 0.0f);
		mShowAction.setDuration(200);
		view.startAnimation(mShowAction);
	}

5、image控件從自身位置的最左端開始水平向右滑動隱藏動畫,持續時間0.2s

	private void hiddenScrollAnim(LinearLayout view) {
		view.setVisibility(View.GONE);
		TranslateAnimation mHiddenAction = new TranslateAnimation(
				Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
				1.0f, Animation.RELATIVE_TO_SELF, 0.0f,
				Animation.RELATIVE_TO_SELF, 0.0f);
		mHiddenAction.setDuration(200);
		view.startAnimation(mHiddenAction);
	}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved