闪屏->[欢迎页]->主界面
来源:互联网 发布:人民警察证制作软件 编辑:程序博客网 时间:2024/04/30 19:40
简述:本篇总结欢迎页. ViewPager加载欢迎页,当滑动到最后一页显示按钮,点击进入主界面. 整个欢迎页带小圆点指示器,闪屏页默认显示三秒.
PART_A闪屏页
public class SplashActivity extends Activity { private static final String IS_FIRST_IN = "isFirstIn"; private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 全屏 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); TextView tv = new TextView(this); tv.setText("splash page"); setContentView(tv); isFirstIn(); // 是否第一次进入APP } /** * 判断是否第一次进入APP */ private void isFirstIn() { sp = getSharedPreferences("config", Context.MODE_PRIVATE); new Handler() { public void handleMessage(android.os.Message msg) { if (sp.getBoolean(IS_FIRST_IN, true)) { sp.edit().putBoolean(IS_FIRST_IN, false).commit(); startActivity(new Intent(SplashActivity.this, NevigateActivity.class)); finish(); } else { startActivity(new Intent(SplashActivity.this, MainActivity.class)); finish(); } }; }.sendEmptyMessageDelayed(0, 3000); // 固定3秒闪屏页面展示 }}
PART_B欢迎页布局及指示器xml文件
布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:id="@+id/bt_toMain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="30dp" android:paddingLeft="30dp" android:paddingRight="30dp" android:text="开始体验" android:textSize="20sp" android:visibility="gone" /> <LinearLayout android:id="@+id/ll_pointer" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="10dp" android:gravity="center" android:orientation="horizontal" /></RelativeLayout>
小圆点指示器
shape_defualt
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <size android:height="5dp" android:width="5dp" /> <solid android:color="#8000" /></shape>
shape_enable
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <size android:height="5dp" android:width="5dp" /> <solid android:color="#cfff" /></shape>
小圆点选择器
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_selector_enable" android:state_enabled="true"></item> <item android:drawable="@drawable/shape_selector_default"></item></selector>
PART_C欢迎页JAVA实现
- 可以修改欢迎页ImageView图片集合、小圆点指示器样式及间距等、进入主界面的按钮样式.
public class NevigateActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.guide); // 初始化欢迎页并加入集合中 initPagers(); // 初始化指示器 initIndicator(); // 设置ViewPager initViewPager(); } /** * 初始化欢迎页并加入集合<mImgs>中 */ private ArrayList<View> mImgs; private void initPagers() { ImageView iv1 = new ImageView(this); iv1.setBackgroundResource(R.drawable.p1); ImageView iv2 = new ImageView(this); iv2.setBackgroundResource(R.drawable.p2); mImgs = new ArrayList<View>(); mImgs.add(iv1); mImgs.add(iv2); } /** * 初始化指示器 */ private LinearLayout ll_indicators; private void initIndicator() { ll_indicators = (LinearLayout) findViewById(R.id.ll_pointer); for (int i = 0; i < mImgs.size(); i++) { ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.selector_pointer); if (i == 0) { iv.setEnabled(true); } else { iv.setEnabled(false); } // 初始化参数 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); if (i != 0) { params.leftMargin = 12; // 指示器点间距 } iv.setLayoutParams(params); ll_indicators.addView(iv); } } /** * ViewPager设置适配器和监听 */ private ViewPager mViewPager; private NavigateAdapter mAdapter; private Button btToMain; private int lastPos; private void initViewPager() { mViewPager = (ViewPager) findViewById(R.id.view_pager); btToMain = (Button) findViewById(R.id.bt_toMain); mAdapter = new NavigateAdapter(); mViewPager.setAdapter(mAdapter); // 控制进入主页的按钮 mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { // 设置按钮 if (position == mImgs.size() - 1) { btToMain.setVisibility(View.VISIBLE); } else { btToMain.setVisibility(View.GONE); } // 设置指示器 int pos = 0; if (mImgs != null) { pos = position % mImgs.size(); } else { pos = position % mImgs.size(); } // 将本页设置为选中。 ImageView iv = (ImageView) ll_indicators.getChildAt(pos); iv.setEnabled(true); // 将上一页设置为未选中。 ImageView lastImage = (ImageView) ll_indicators.getChildAt(lastPos); lastImage.setEnabled(false); lastPos = pos; } @Override public void onPageScrolled(int arg0, float arg1, int arg2) {} @Override public void onPageScrollStateChanged(int arg0) {} }); // 点击进入主页 btToMain.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(NevigateActivity.this, MainActivity.class)); finish(); } }); } /** 固定写法 */ class NavigateAdapter extends PagerAdapter { @Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager) container).removeView(mImgs.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { ((ViewPager) container).addView(mImgs.get(position)); return mImgs.get(position); } @Override public int getCount() { return mImgs.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } }}
以上。如有错误和疑问,欢迎指正提出。 catface.wyh@gmail.com
0 0
- 闪屏->[欢迎页]->主界面
- android欢迎界面引导页
- Android欢迎界面引导页
- 欢迎界面
- 欢迎界面
- 欢迎界面
- 欢迎界面
- 欢迎界面
- 欢迎界面
- 欢迎界面
- 安卓欢迎页停留几秒跳到主界面
- android启动页广告欢迎界面
- 欢迎界面跳转到程序主界面之倒计时,线程
- 安卓中实现欢迎界面延时进入主界面代码
- android欢迎界面+登录界面
- android仿微信实现欢迎界面、介绍界面及单击按钮跳转到主界面
- android首次安装app时欢迎界面进入向导界面再进入到主界面
- android 欢迎页启动页自动跳转到主界面 源码
- devspace
- C#状态机
- Java 内部类
- 体验了一天企业微信,你的工作以后可能离不开它
- 备份gitlab时遇到Dumping PostgreSQL database gitlabhq_production ... [FAILED]问题
- 闪屏->[欢迎页]->主界面
- Arduino EEPROM 的操作
- Shell脚本编程学习笔记
- Android字体设置
- Struts2常用标签总结
- 求最大公约数
- js循环优化
- 查看TOMCAT内存使用情况(总结)
- 机器学习系列(8)_读《Nature》论文,看AlphaGo养成