Android應用中的開機引導界面——用ViewPager實現
2016-04-12
這篇文章中,只介紹第一種實現方式 ViewPager , 第二種方式將會在下一篇博文中介紹;
ViewPager 組件是在Android 11以后才出來的一個組件,位于:android-support-v4.jar 中,因此使用時需要進入此包。
第一步:在配置文件中,引入ViewPager ,代碼如下:
<font face="宋體" size="3"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout> </font>
復制代碼
<font face="宋體" size="3">package com.zhanggeng.guider;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import com.zhanggeng.myutil.dialogtool.DialogTool;
public class MainActivity extends Activity {
//Viewpager對象
private ViewPager viewPager;
//ViewPager適配器對象
private GuiderPagerAdapter adapter;
//SharedPreferences 用來判斷是否是第一次登陸,第一次登陸則顯示引導界面,否則直接進入。
private SharedPreferences pre;
private SharedPreferences.Editor editor;
//判斷標記
private boolean isFirst;
Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//設置無標題
requestWindowFeature(Window.FEATURE_NO_TITLE);
//設置SharedPreferences
pre = getSharedPreferences("isFirst", MODE_WORLD_WRITEABLE);
isFirst = pre.getBoolean("isFirst", true);
if(isFirst){
//如果是第一次登陸,則初始化,引導界面
initView();
}else{
//否則直接進入
gotoLoginActivity();
}
}
private void initView() {
//加載程序布局界面
setContentView(R.layout.activity_main);
//為程序設置是否第一次登入的標記
saveTag();
viewPager = (ViewPager) findViewById(R.id.pager);
adapter = new GuiderPagerAdapter();
//初始化每一個頁面
ImageView v1 = new ImageView(this);
v1.setLayoutParams(new LayoutParams(1, -1));
v1.setScaleType(ScaleType.FIT_XY);
v1.setImageResource(R.drawable.guild1);
adapter.views.add(v1);
ImageView v2 = new ImageView(this);
v2.setLayoutParams(new LayoutParams(-1 , -1));
v2.setScaleType(ScaleType.FIT_XY);
v2.setImageResource(R.drawable.guild2);
adapter.views.add(v2);
ImageView v3 = new ImageView(this);
v3.setLayoutParams(new LayoutParams(-1, -1));
v3.setScaleType(ScaleType.FIT_XY);
v3.setImageResource(R.drawable.guild3);
adapter.views.add(v3);
//為最后一個頁面添加監聽事件,當點擊后,進入主頁面
v3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
gotoLoginActivity();
}
});
viewPager.setAdapter(adapter);
}
private void saveTag() {
// TODO Auto-generated method stub
editor = pre.edit();
editor.putBoolean("isFirst", false);
editor.commit();
}
private void gotoLoginActivity() {
// TODO Auto-generated method stub
DialogTool.createOnlyButtonDialog(context, "OK", "You have login success !", "LoginSuccess", null);
}
class GuiderPagerAdapter extends PagerAdapter{
public ArrayList<View> views;
public GuiderPagerAdapter(){
views = new ArrayList<View>();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return views.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
container.removeView(views.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
container.addView(views.get(position));
return views.get(position);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
}
} </font>
復制代碼
上一篇:Android 性能調優點