Android软件新手引导页面制作
来源:互联网 发布:mac草图大师2017破解 编辑:程序博客网 时间:2024/04/27 16:26
在我们使用软件的过程中,第一次使用都会有个新手引导页面,通常是关于这个软件的简单介绍。怎么去实现这个页面,并且只在第一次打开软件的时候显示呢?本文就通过一个小demo来实现以下,素材也很简单,简单准备几张图就好了。我这里的三张图,还是来自王者荣耀助手里面的
分别命名为 guide_1.png、guide_2.png、guide_3.png 放到drawable目录下。
写一个布局文件 activity_guide.xml
ViewPager用来放图片,底部放一个开始体验的按钮,
如果ViewPager导入失败,可以参考我的另一篇博客:Android Studio导入support-v4.jar包来解决
<?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/vp_guide" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:id="@+id/btn_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="60dp" android:padding="5dp" android:text="开始体验" /></RelativeLayout>
写一个GuideActivity.java ,用来处理逻辑,不要忘了在AndroidMainifest.xml文件中声明我们自己创建的GuideActivity
import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.widget.Button;import android.widget.ImageView;import java.util.ArrayList;/** * Created by * "cjluzzl" * on 2017/7/23 0:42. */public class GuideActivity extends Activity { private ViewPager viewPager; //引导图片的资源id private int[] mImageIds = new int[]{ R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3 }; private ArrayList<ImageView> mImageViewList = new ArrayList<ImageView>(); private Button btn_start; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //设置标题栏隐藏 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_guide); initViews(); //找到ViewPager viewPager = (ViewPager) findViewById(R.id.vp_guide); //为viewPager设置适配器 viewPager.setAdapter(new GuideAdapter()); viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { } @Override public void onPageSelected(int i) { if(i == mImageIds.length-1){ btn_start.setVisibility(View.VISIBLE); }else { btn_start.setVisibility(View.INVISIBLE); } } @Override public void onPageScrollStateChanged(int i) { } }); btn_start = (Button) findViewById(R.id.btn_start); btn_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //引导页面的开始体验按钮被点击后设置配置文件的用户引导显示状态 SharedPreferences sp = getSharedPreferences("config",MODE_PRIVATE); sp.edit().putBoolean("is_user_guide_show_state",true).commit(); startActivity(new Intent(GuideActivity.this, MainActivity.class)); finish(); } }); } /** * 初始化视图 */ public void initViews(){ for(int i =0 ; i< mImageIds.length; i++){ //声明一个ImageView ImageView image = new ImageView(this); //设置背景资源为对应的图片 image.setBackgroundResource(mImageIds[i]); //把ImageView添加到图片列表中 mImageViewList.add(image); } } //自定义适配器 private class GuideAdapter extends PagerAdapter{ @Override public int getCount() { return mImageIds.length; } @Override public boolean isViewFromObject(View view, Object o) { return view == o; } //实例化项目 @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(mImageViewList.get(position)); return mImageViewList.get(position); } //销毁项目 @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }}
由于我们设置了
is_user_guide_show_state这个用户引导界面的显示状态,所以在我们可以在启动软件的动画界面逻辑中根据
is_user_guide_show_state的值来判断应该进入新手引导页面还是主页面。关于启动动画界面的制作可以访问我的另一篇博客:
android启动页面制作
在里面的startFlash()方法里加入下面代码
//设置动画监听事件 set.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } //动画播放完毕后进入新手引导页面 @Override public void onAnimationEnd(Animation animation) { SharedPreferences sp = getSharedPreferences("config",MODE_PRIVATE); boolean userGuideShowState = sp.getBoolean("is_user_guide_show_state",false); if(userGuideShowState){ startActivity(new Intent(startFlashActivity.this,MainActivity.class)); }else { startActivity(new Intent(startFlashActivity.this,GuideActivity.class)); } finish(); } @Override public void onAnimationRepeat(Animation animation) { } }); rlRoot.startAnimation(set);MainActivity可以随便下个简单页面作为测试即可,
这个项目的源码可以访问我的个人网站https://www.cjluzzl.cn或者邮箱联系我cjluzzl@126.com
阅读全文
0 1
- Android软件新手引导页面制作
- iOS 新手引导页面
- cocos2dx-lua制作新手引导
- 关于新手引导的制作
- Android项目新手功能引导页面代码实现
- Android打造不一样的新手引导页面(一)
- Android打造不一样的新手引导页面(二)
- 关于Android 应用新手引导页面的小例子
- android 设置新手引导
- Android 新手引导库
- <Unity3D 工作笔记>新手引导制作
- Cocos2d-js制作游戏新手引导(二)
- react-native制作新手引导组件
- UGUI强制新手引导制作方案
- 游戏新手引导的制作原理
- Android开发实战1----第一次启动软件 引导页面
- Android 引导界面制作
- Android 引导界面制作
- CentOS修改Terminal的快捷键-yellowcong
- 网络流总结
- Mjpeg-streamer源码学习笔记-Main-线程(四)
- 双向链表
- 深度优先算法—取特定的全排列
- Android软件新手引导页面制作
- 【分布式存储项目】(7)Qt编程
- 2.TVTK入门
- 通过XML装配bean(一)
- 单例模式
- 【Redis】Redis设置密码安全配置、RDB
- 最小均方算法(LMS)
- WebStorage 的应用—— sessionStorage
- OpenCV 3计算机视觉:Python语言实现(原书第2版) pdf+项目源代码