英文翻譯語言翻譯公司

 


1. Alpha

     private View.OnClickListener btnHide2ndFragmentOnClick = new View.OnClickListener() {
          public void onClick(View v) {
               ((MainActivity) getActivity()).hideSecondFragment();
          }
     };

}


    …(本來的程式碼)
     private SecondFragment mSecondFrag;


另外要彌補說明的是,這個典範榜樣程式是利用android-support-v4.jar程式庫提供的Fragment,這個Fragment需要共同View Animation。可是如果換成利用Android 3.0以上的系統供應的Fragment,就要使用Property Animation。


scale值可以在x和y二個標的目的自力設定翻譯x標的目的是影像的寬,y方向是影象的高。 這種動畫結果是藉由改變影象的大小來告竣翻譯影像的scale值也是用0~1來表示。0默示完全看不到,1示意本來影像的大小。

 

影像的位置是藉由x和y標的目的上的位移量來決定翻譯
這個動畫結果是藉由改變影象的位置來達成。
Step 1. 遵照上一篇文章介紹的方法,在App專案中新增另外一個Fragment(提示:先插手一個介面結構檔,再建立Fragment的程式檔)。

藉由改變影象的扭轉角度來做出動畫效果。
</LinearLayout>

<translate xmlns:android="http://schemas.android.com/apk/res/android"
<?xml version="1.0" encoding="utf-8"?>
Step 8. 修改主程式檔:


這個規範是使用translate型態的動畫,它可以用來做出移動的結果翻譯除了translate以外,Android系統還供應另外三種型態的動畫,華碩翻譯社們簡單申明如下:

        public void onActivityCreated(Bundle savedInstanceState) {
           …
            mBtnShow2ndFragment =
                    (Button) v.findViewById(R.id.btnShow2ndFragment);
            mBtnShow2ndFragment.setOnClickListener(
                               btnShow2ndFragmentOnClick);
       }
       …
        private View.OnClickListener btnShow2ndFragmentOnClick = new View.OnClickListener() {
            public void onClick(View v) {
              ((MainActivity) getActivity()).showSecondFragment();
            }
        }

}
Step 6. 遵照同樣的操作體例,到場另一個動畫資本檔,並取名為fragment_out_from_right_side :

 

    public void showSecondFragment() {
          getSupportFragmentManager().beginTransaction()
               .setCustomAnimations(
                    R.anim.fragment_in_from_right_side, R.anim.no_change,
                    R.anim.fragment_in_from_right_side, R.anim.no_change)
               .show(mSecondFrag)
               .commit();
     }
     public void hideSecondFragment() {
          getSupportFragmentManager().beginTransaction()
               .setCustomAnimations(
                    R.anim.no_change, R.anim.fragment_out_from_right_side翻譯社
                    R.anim.no_change翻譯社 R.anim.fragment_out_from_right_side)
               .hide(mSecondFrag)
               .commit();
     }

    android:fromXDelta="0"
    android:fromXDelta="100%"
Step 2. 點竄第一個Fragment的介面佈局檔和程式檔,就是在畫面下方新增一個按鈕,而且插足相關的程式碼:
    android:toXDelta="0"
    android:duration="400" />

        FragmentManager fragMgr = getSupportFragmentManager();
       MainFragment mainFrag = new MainFragment();
            mSecondFrag = new SecondFragment;
            fragMgr.beginTransaction()
                 .add(R.id.frameLayout, mainFrag)
                 .add(R.id.frameLayout, mSecondFrag)
                 .hide(mSecondFrag)
                 .commit();
     }

<?xml version="1.0" encoding="utf-8"?>

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    … >
   … (本來的程式碼)
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/show_2nd_fragment" />

 

 

    android:toXDelta="0"
<translate xmlns:android="http://schemas.android.com/apk/res/android"

 public class SecondFragment extends Fragment {
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
       Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_second, container, false);
    }
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Button btnHide2ndFragment =
                (Button) getView().findViewById(R.id.btnHide2ndFragment);
        btnHide2ndFragment.setOnClickListener(btnHide2ndFragmentOnClick);
     }

 

 

<translate xmlns:android="http://schemas.android.com/apk/res/android"

    <Button
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="@string/return_to_1st_fragment" />

    android:duration="400" />

    <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="@string/second_fragment" />


選定好動畫類型之後按下Finish按鈕。由於會分別用到Fragment消逝和泛起二種動畫結果,所以我們在動畫資源檔的名稱加上in和out來區別,in默示用在影象泛起時的動畫,out表示用在影像消逝時的動畫。
Step 4. 在對話盒中,將Resource Type欄位設定為Tween Animation,File欄位中輸入動畫資本檔名稱,例如fragment_in_from_right_side,然後鄙人方的項目清單中選擇Translate。
Step 5. 在新創立的動畫資本檔中輸入下列的程式碼:

接下來就讓我們幫上一篇文章完成的程式專案,到場第二個Fragment,而且設定它呈現的時候,會從螢幕右側滑入。我們需要用到上一篇文章介紹的FragmentManager來控制Fragment的顯示和埋沒,在改變Fragment的時候,還可以套用動畫結果。

前一篇文章介紹若何在Activity中到場Fragment,為了盡量簡化程式專案,華碩翻譯社們只用了一個Fragment來示範翻譯可是其實Fragment最大的用途是可以在一個Activity中插手很多不同的操作畫面,我們把這些操作畫面放在分歧的Fragment中,再把這些Fragment加到Activity介面佈局檔的容器裡頭,比及要用到的時刻才讓它們顯示。

 

Step 3. 接下來是建立動畫資源檔翻譯在Eclipse左側的專案檢視視窗中,用滑鼠右鍵點選程式專案的res資料夾,然後選擇New > Android XML File翻譯
3. Translate
當影像的alpha值由1減到0時,影象變的越來越透明,也就是愈來愈不清晰直到看不見(alpha值為0)翻譯
這類動畫結果是藉由改變影像的透明度來告竣。當影像的alpha值是1時,暗示影象完全不透明,此時是最清楚的狀況。

除View Animation之外,Android系統還供給Drawable Animation和Property Animation這二種動畫手藝。

這些動畫是屬於View Animation,View Animation又稱為Tween Animation。

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    … >

    android:duration="400" />

 public class MainFragment extends Fragment {
    …
    private Button mBtnOK翻譯社 mBtnShow2ndFragment;

4. Rotate
}
2. Scale
    android:toXDelta="100%"
<?xml version="1.0" encoding="utf-8"?>
Step 7. 依照一樣的操作體式格局,再加入一個動畫資本檔,並取名為no_change。
這個動畫要套用到第一個Fragment,因為我們不要它有任何改變。

public class MainActivity extends FragmentActivity {

</LinearLayout>

    android:fromXDelta="0"

    @Override
     protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);



本文引用自: http://androidstation.pixnet.net/blog/post/233440249-fragment%E6%90%AD%E9%85%8D%E5%8B%95%E7%95%AB%E6有關翻譯的問題歡迎諮詢華碩翻譯社

文章標籤
全站熱搜
創作者介紹
創作者 joyceueyg71j 的頭像
joyceueyg71j

qs5wayneirman

joyceueyg71j 發表在 痞客邦 留言(0) 人氣(3)