APP开发:导航界面
2016-07-16 17:21
246 查看
需求:
先进入欢迎界面,停留3秒,若是第一次打开app,则再次进入导航界面;若不是,则进入主界面。
欢迎界面(a.jpg)
导航界面 (b.jpg + c.jpg + d.jpg)
主界面
效果图:
用到的知识点:
Handler + SharedPreferences + ViewPager + PagerAdapter
目录:
activity_welcome.xml
activity_splash.xml
activity_main.xml
WelcomeActivity.java
SplashActivity.java
MainActivity.java
点击下载源码
先进入欢迎界面,停留3秒,若是第一次打开app,则再次进入导航界面;若不是,则进入主界面。
欢迎界面(a.jpg)
导航界面 (b.jpg + c.jpg + d.jpg)
主界面
效果图:
用到的知识点:
Handler + SharedPreferences + ViewPager + PagerAdapter
目录:
activity_welcome.xml
<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" > <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/a" /> </RelativeLayout>
activity_splash.xml
<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/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="30dp" android:visibility="gone" android:text="进入主页面"> </Button> </RelativeLayout>
activity_main.xml
<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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>
WelcomeActivity.java
package com.cqc.guidedemo01; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; public class WelcomeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); Message msg = Message.obtain(); handler.sendEmptyMessageDelayed(0, 3000); } public Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { if (msg.what == 0) { boolean is_First = getSharedPreferences("config", MODE_PRIVATE).getBoolean("is_First", true); if (is_First) { Intent intent = new Intent(getBaseContext(), SplashActivity.class); startActivity(intent); } else { Intent intent = new Intent(getBaseContext(), MainActivity.class); startActivity(intent); } finish(); } }; }; }
SplashActivity.java
package com.cqc.guidedemo01; import java.util.ArrayList; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences.Editor; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; public class SplashActivity extends Activity { private ArrayList<ImageView> list; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); initIsFirst(); initData(); btn = (Button) findViewById(R.id.btn); ViewPager viewpager = (ViewPager) findViewById(R.id.viewpager); MyAdapter adapter = new MyAdapter(); viewpager.setAdapter(adapter); viewpager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { if (position == list.size() - 1) { btn.setVisibility(View.VISIBLE); btn.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getBaseContext(), MainActivity.class); startActivity(intent); finish(); } }); } else { btn.setVisibility(Button.GONE); } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageScrollStateChanged(int state) { } }); } private void initIsFirst() { Editor edit = getSharedPreferences("config", MODE_PRIVATE).edit(); edit.putBoolean("is_First", false); edit.commit(); } private void initData() { list = new ArrayList<ImageView>(); ImageView iv1 = new ImageView(getBaseContext()); iv1.setBackgroundResource(R.drawable.b); list.add(iv1); ImageView iv2 = new ImageView(getBaseContext()); iv2.setBackgroundResource(R.drawable.c); list.add(iv2); ImageView iv3 = new ImageView(getBaseContext()); iv3.setBackgroundResource(R.drawable.d); list.add(iv3); } class MyAdapter extends PagerAdapter { @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(View view, Object obj) { return view == obj; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(list.get(position)); return list.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } }
MainActivity.java
package com.cqc.guidedemo01; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
点击下载源码
相关文章推荐
- iOS--PhotoKit简单入门
- frist Django app — 五、Test
- Android 代码中setTextColor
- Android对话框 Dialog
- 一个android群组通知APP的数据框架
- Android 开发你需要了解的 Gradle 配置
- android Universal-Image-Loader框架学习
- Android中自定义控件
- android Universal-Image-Loader框架学习
- Android-打开相册或拍照并裁剪
- iOS一些常用的库
- [安卓开发] Broadcast 三种广播的使用总结
- 在AndroidStudio中使用Lambda表达式
- APP开发实战94-Vector静态图的使用
- 致创业者:APP已死 服务永生
- Android的Root权限——su与adb
- Android基础之Intent 和 Intent 过滤器
- APP开发实战93-静态Vector语法简介
- unity自带寻路Navmesh入门教程(二)
- APP开发实战92-静态Vector兼容性处理