android-Animation進階(創造使用者舒服的動畫),androidanimation
android中常用的動畫有Animation ,Animator兩種;
---第1種常用的是使用在Activity切換中.比如開啟一個Activity.關閉一個Activity 個人比較喜歡的是左右滑動的效果(至於xml如何配置Tween動畫不在贅述,網上到處都是)
1.啟動Activity
private void gotoRegistActivity() {Intent intent=new Intent();intent.setClass(getActivity(),RegistActivity.class);startActivity(intent);getActivity().overridePendingTransition(R.anim.slide_right_in,R.anim.slide_left_out);}
2.關閉Activity(這裡個人項目做了一個Activity基類,在基類中實現代碼)
@Overridepublic boolean onKeyDown(int keycCode, KeyEvent keyEvent) {if (keycCode==KeyEvent.KEYCODE_BACK) {this.finish();overridePendingTransition(R.anim.slide_left_in,R.anim.slide_right_out);return true;}return super.onKeyDown(keycCode, keyEvent);}
---Animator配置
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <objectAnimator android:interpolator="@android:interpolator/decelerate_quint" android:valueFrom="200dp" android:valueTo="0dp" android:valueType="floatType" android:propertyName="translationX" android:duration="500" /> <objectAnimator android:interpolator="@android:interpolator/decelerate_quint" android:valueFrom="0.0" android:valueTo="1.0" android:valueType="floatType" android:propertyName="alpha" android:duration="500" /></set>
2.一般Animator是配置在新的API上,諸如我們熟悉的Fragment裡面,網上尋找了一下,說是add,remove,前調用,經測試,在FragmentTransaction開啟事務後
調用:(以下代碼在調用detach()前有效果,slide的xml根據上面的稍稍改動即可,如果讀者想查看東西時間 建議增加動畫時間觀察):
mTransaction.setCustomAnimations(R.anim.slide_frag_in,R.anim.slide_frag_out);
Android:animation動畫問題
使用屬性動畫,調整translationX或者translationY來實現移動可以解決你的問題。
android Animation動畫
有一個方法,但不是一個好的解僱方案。我試過。不設定setFillAfter(true),而是在動畫結束的監聽裡把這個控制項挪動到動畫結束的位置上去。但是它會有一個抖動的Bug。