利用AppIntro快速制作一个app启动页
2017-11-03 23:21
411 查看
前言
制作一个app的启动页真的好烦,但是用了下面的开源库,制作出来的启动页不仅炫酷,而且快速,作者自己就是这么说的哦:Make a cool intro for your Android app.
这个项目的开源地址是:
AppIntro
这个开源库的显示效果如下:
废话不多说,直接看看如何使用吧。
使用
添加JitPack仓库
repositories { ... maven { url 'https://jitpack.io' } }
添加依赖
dependencies { compile 'com.github.apl-devs:appintro:v4.2.2' }
新建一个Activity继承 AppIntro
public class AppIntroActivity extends AppIntro { @Override public void init(@Nullable Bundle savedInstanceState) { addSlide(SlideFragment.newInstance(R.layout.intro1)); addSlide(SlideFragment.newInstance(R.layout.intro2)); addSlide(SlideFragment.newInstance(R.layout.intro3)); addSlide(SlideFragment.newInstance(R.layout.intro4)); setSeparatorColor(getResources().getColor(R.color.colorAccent)); setVibrateIntensity(30); setSkipText("跳过"); setDoneText("完成"); } @Override public void onSkipPressed() { //当执行跳过动作时触发 Intent intent = new Intent(AppIntroActivity.this, MainActivity.class); startActivity(intent); SpUtils.putBoolean(AppIntroActivity.this, AppConstants.FIRST_OPEN, true); finish(); } @Override public void onNextPressed() { //当执行下一步动作时触发 } @Override public void onDonePressed() { //当执行完成动作时触发 Intent intent = new Intent(AppIntroActivity.this, MainActivity.class); startActivity(intent); SpUtils.putBoolean(AppIntroActivity.this, AppConstants.FIRST_OPEN, true); finish(); } @Override public void onSlideChanged() { //当执行变化动作时触发 } }
千万注意不要使用 setContentView()方法
其中
R.layout.intro1/R.layout.intro2/R.layout.intro3/R.layout.intro4四个就是你要展示的启动页,直接做好相应的布局即可。
当然也可以进行一些其他的设置,比如如下代码用来设置下划线的颜色
setSeparatorColor(getResources().getColor(R.color.colorAccent));
以下方法设置作者默认封装好的动画效果
setFadeAnimation() setZoomAnimation() setFlowAnimation() setSlideOverAnimation() setDepthAnimation()
最后确定是不是第一次启动应用
在MainActivity中添加如下代码// 判断是否是第一次开启应用 boolean isFirstOpen = SpUtils.getBoolean(this, AppConstants.FIRST_OPEN); Log.d(TAG, "onCreate: " + isFirstOpen); // 如果是第一次启动,则先进入功能引导页 if (!isFirstOpen) { Intent intent = new Intent(this, AppIntroActivity.class); startActivity(intent); finish(); return; }
该案例中使用到的工具类
SpUtils.javapublic class SpUtils { private static final String spFileName = "app"; public static String getString(Context context, String strKey) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); String result = setPreferences.getString(strKey, ""); return result; } public static String getString(Context context, String strKey, String strDefault) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); String result = setPreferences.getString(strKey, strDefault); return result; } public static void putString(Context context, String strKey, String strData) { SharedPreferences activityPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); SharedPreferences.Editor editor = activityPreferences.edit(); editor.putString(strKey, strData); editor.commit(); } public static Boolean getBoolean(Context context, String strKey) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); Boolean result = setPreferences.getBoolean(strKey, false); return result; } public static Boolean getBoolean(Context context, String strKey, Boolean strDefault) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); Boolean result = setPreferences.getBoolean(strKey, strDefault); return result; } public static void putBoolean(Context context, String strKey, Boolean strData) { SharedPreferences activityPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); SharedPreferences.Editor editor = activityPreferences.edit(); editor.putBoolean(strKey, strData); editor.commit(); } public static int getInt(Context context, String strKey) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); int result = setPreferences.getInt(strKey, -1); return result; } public static int getInt(Context context, String strKey, int strDefault) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); int result = setPreferences.getInt(strKey, strDefault); return result; } public static void putInt(Context context, String strKey, int strData) { SharedPreferences activityPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); SharedPreferences.Editor editor = activityPreferences.edit(); editor.putInt(strKey, strData); editor.commit(); } public static long getLong(Context context, String strKey) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); long result = setPreferences.getLong(strKey, -1); return result; } public static long getLong(Context context, String strKey, long strDefault) { SharedPreferences setPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); long result = setPreferences.getLong(strKey, strDefault); return result; } public static void putLong(Context context, String strKey, long strData) { SharedPreferences activityPreferences = context.getSharedPreferences( spFileName, Context.MODE_PRIVATE); SharedPreferences.Editor editor = activityPreferences.edit(); editor.putLong(strKey, strData); editor.commit(); } }
SlideFragment
public class SlideFragment extends Fragment { private static final String ARG_LAYOUT_RES_ID = "layoutResId"; public static SlideFragment newInstance(int layoutResId) { SlideFragment slideFragment = new SlideFragment(); Bundle args = new Bundle(); args.putInt(ARG_LAYOUT_RES_ID, layoutResId); slideFragment.setArguments(args); return slideFragment; } private int layoutResId; public SlideFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null && getArguments().containsKey(ARG_LAYOUT_RES_ID)) layoutResId = getArguments().getInt(ARG_LAYOUT_RES_ID); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(layoutResId, container, false); } }
AppConstants
public class AppConstants { public static final String FIRST_OPEN = "first_open"; }
最后附上demo地址
一个快速制作app启动页的Demo相关文章推荐
- APP Inventor,一个能快速做出app的工具。只要会C语言就行,很好的调试单片机工具。基于arduino的蓝牙数据传送在APP显示,室内花园的制作。
- Photoshop利用图层样式快速制作一个剔透的玉石挂坠图标
- 利用react native创建一个天气APP
- Python3利用网页接口制作一个免费的VIP视频播放软件
- 利用canvas制作一个时钟
- 制作一个功能丰富的Android天气App
- 快速搭建一个成熟,强壮的App框架
- 如何判断一个APP制作团队是否靠谱?
- 制作一个APP(持续更新)
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
- 利用Qt制作一个helloworld
- 懂商业的技术合伙人(7):怎样快速开发一个APP(2)
- ios快速创建一个app框架
- 利用Bootstrap制作一个流行的网页
- 【如何快速的开发一个完整的 iOS 直播 app】(美颜篇)
- 【前端-作业·】利用DOM和JS:一个下拉菜单的制作~
- 如何利用PhoneGap制作地图APP
- 利用Arduino快速制作Teensy BadUSB
- 一个利用google文档快速解决docx向doc转换的问题
- 利用LinkedList制作一个栈