您的位置:首页 > 移动开发

利用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.java

public 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android app 开源