overridePendingTransition
在startActivity()或finish()後,調用overridePendingTransition
(R.anim.**in,R.anim.**out)方法.
• 一)實作淡入淡出的效果如下:
startActivity(new Intent(SplashActivity.this, MainActivity.class));
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
SplashActivity.this.finish();
• 二)由左向右滑入的效果改變一下參數即可
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
• 三)要實作zoomin和zoomout,即類似iphone的進入和退出時的效果
在res目錄下建立檔案夾anim,然後在anim下建立兩個xml,預設選項不用更改,分别命名為zoomin.xml和zoomout.xml,
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator" >
<scale
android:duration="@android:integer/config_mediumAnimTime"
android:fromXScale="2.0"
android:fromYScale="2.0"
android:pivotX="50%p"
android:pivotY="50%p"
android:toXScale="1.0"
android:toYScale="1.0" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top" >
<scale
android:duration="@android:integer/config_mediumAnimTime"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%p"
android:pivotY="50%p"
android:toXScale=".5"
android:toYScale=".5" />
<alpha
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="1.0"
android:toAlpha="0" />
</set>
上一個文字Android切換Activity界面滑動,記錄了overridePendingTransition怎麼使界面滑動
緊跟着項目裡,遇到了在Fragment中要使用這個方法;
package com.fengsidai.si;
import com.fengsidai.......
public class SiListPage extends Fragment{
private ViewFlipper viewFlippper;//滑動
private ImageButton btnmainright;//右側篩選按鈕
private Button screen_back;//傳回按鈕
private ListView siList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// return super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.viewflipper_page, container, false);
viewFlippper=(ViewFlipper)view.findViewById(R.id.viewFlipper);
btnmainright=(ImageButton)view.findViewById(R.id.right_btn);
screen_back=(Button)view.findViewById(R.id.screen_reback_btn);
btnmainright.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0){
viewFlippper.showNext(); });
screen_back.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0){
viewFlippper.showPrevious();
}
});
siList=(ListView)view.findViewById(R.id.viewSIList);
siList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setClass(Main_page.main_context,PersonalInformation.class);
startActivity(intent);
((Activity) Main_page.main_context).overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); //主要想說明這裡的寫法,如果不這麼寫會報錯
You need to call methdod overridePendingTransition from activity, but you do it in OnClickListener
}
});
return view;//inflater.inflate(R.layout.viewflipper_page, container);
}
}
package com.fengsidai.
import com.fengsidai.
public class Main_page extends Activity implements OnCheckedChangeListener{
public static Main_page main_context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.navigationbar_page);
main_context=this;
}
}