app展示(非UI出身,请原谅则个):
项目整个进程:
目录
一、引导页设计
1.图片加载方式
第一种是加载本地的html(设计三种图片,手动翻页),应用file:///android_asset/XXX.html,相关代码如下:
setContentView(R.layout.webview);
webView = (WebView)findViewById(R.id.wv_webview);
url = "file:///android_asset/guide/index.html";
loadLocalHtml(url);
加载后,手动翻页就进入主Activity:
public void loadLocalHtml(String url){
WebSettings ws = webView.getSettings();
ws.setJavaScriptEnabled(true);//开启JavaScript支持
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//重写此方法,用于捕捉页面上的跳转链接
if ("http://start/".equals(url)){
//在html代码中的按钮跳转地址需要同此地址一致
Toast.makeText(getApplicationContext(), "开始体验,正在加载...", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,HomeMainActivity.class);
startActivity(intent);
finish();
}
return true;
}
});
webView.loadUrl(url);
}
本地的html文件就没贴出来了,有需要的可以留言艾特我。
第二种就是直接加载ViewPager:一图片一Fragment模式
只需要这样手动翻页就行:
private void initView() {
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), showView()));
listImg = new ArrayList<View>();
listImg.add(findViewById(R.id.y1));
listImg.add(findViewById(R.id.y2));
listImg.add(findViewById(R.id.y3));
viewPager.setOnPageChangeListener(showPageChange);
}
ViewPager.OnPageChangeListener showPageChange = new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
for (int i = 0; i < listImg.size(); i++) {
if (i == arg0) {
listImg.get(arg0).setBackgroundResource(R.drawable.y_focused);
} else {
listImg.get(i).setBackgroundResource(R.drawable.y_normal);
}
}
}
我选择第二种方式,因为比较操作,而且很好的设计接下来的第一次进入有引导页第二次进入没有引导页。
核心是SharedPreferences,在主程序里监听按键的状态:
final SharedPreferences sharedPreferences = getSharedPreferences("is_first_in_data",MODE_PRIVATE);
isFirstIn = sharedPreferences.getBoolean("isFirstIn",true);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (isFirstIn) {
setContentView(R.layout.activity_ys);
initView();
} else {
intent = new Intent(ChaoMaintivity.this, MainActivity.class);
ChaoMaintivity.this.startActivity(intent);
ChaoMaintivity.this.finish();
}
}
}, 500);
在第3个fragment里监听按键的状态:
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getActivity(),MainActivity.class);
startActivityForResult(intent,1);
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("is_first_in_data", 0x0000);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("isFirstIn", false);
editor.commit();
getActivity().finish();
// Intent intent=new Intent(getActivity(), MainActivity.class);
// startActivity(intent);
}
});
这样很好的起到了第一次点击之后就消失不见的效果了!