一,寫在不同xml layout的方式,就是建立一個Handler,一定時間後呼叫setContentView去設定新的layout檔案就可以了。不過記得程式中用到的widget(例如findViewById)要在設定完新的layout檔案結束後再去設定哦。
public class Splash extends Activity {
private final int SPLASH_DISPLAY_LENGTH = 2000;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash);
/* New Handler to start the Menu-Activity
* and close this Splash-Screen after some seconds.*/
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
//Intent mainIntent = new Intent(Splash.this,Hello.class);
//Splash.this.startActivity(mainIntent);
//Splash.this.finish();
jumpToMainLayout();
}
}, SPLASH_DISPLAY_LENGTH);
}
public void jumpToMainLayout()
{
setContentView(R.layout.main);
}
}
二,寫在同一個xml中,這種方法其實是將兩個Activity的layout整合整合在一個layout檔和一個Activity中,在layout中利用view的visibility屬性來切換要顯示的頁面。其實重點都在設定一個Handler,當時間到了的時候自動轉換到下一個顯示頁面。這個的方法的好處是在onStart,onResume的時間點不需要考慮主要的畫面是否已經跳到主畫面,而且如果要顯示特別個過場動畫,也比較容易完成哦。
public class ShowSong extends Activity {
private final int SPLASH_DISPLAY_LENGTH = 500;
private Preference mPref;
private SongDB mSDB;
private ImageView mLogo;
private LinearLayout mSongView;
private LinearLayout mSongsView;
private EditText mSearchBox;
private ListView mSongsList;
private SongItemAdapter mSongsAda;
private Song mSong;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mPref = new Preference(this);
mPref.initSongDB();
mSDB = new SongDB(mPref.getSongFolder());
mLogo = (ImageView)findViewById(R.id.logo);
mSongView = (LinearLayout)findViewById(R.id.song_view);
mSongsView = (LinearLayout)findViewById(R.id.songs_view);
mSearchBox = (EditText)findViewById(R.id.search_box);
mSongsList = (ListView)findViewById(R.id.songs_list);
mSearchBox.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (mSongsAda != null) {
mSongsAda.getFilter().filter(s);
}
}
});
//mSongsList.setTextFilterEnabled(true);
mSongsList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {
Song song = (Song)mSongsAda.getItem(arg2);
if (song != null) {
doSongView(song);
}
}
});
/* New Handler to start the Menu-Activity
* and close this Splash-Screen after some seconds.*/
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
toMainLayout();
}
}, SPLASH_DISPLAY_LENGTH);
}
public void toMainLayout()
{
mSongsView.setVisibility(View.VISIBLE);
mSongsView.setClickable(true);
mSongsView.setAnimation(AnimationUtils.loadAnimation(ShowSong.this, R.layout.push_right_in));
mLogo.setVisibility(View.GONE);
listSongs();
}


沒有留言:
張貼留言