人升开发日志#10 | 11/03 Android图片选择、裁剪实现(8.0以及MIUI适配)

不得不说MIUI是个大坑,在其他系统都能正常实现的时候,唯独MIUI出现了各种奇奇怪怪的状况。

最后上了第三方框架uCrop解决裁剪问题。

所需要的框架

因为LitePal和MobSDK都需要对Application进行修改,所以最好实现自己的Application:

  • EasyPermissions(负责处理运行时权限的处理)

  • uCrop(一个图片裁剪框架)

阅读更多

人升开发日志#9 | 8/30 数据库+数据填充

使用了Litepal作为数据库ORM框架,还有BRAVH来简化RecyclerView的适配器的写法。

这里记录下开发途中遇到的坑。

创建自己的Application类

因为LitePal和MobSDK都需要对Application进行修改,所以最好实现自己的Application:

1
2
3
4
5
6
7
8
9
10
11
import android.app.Application
import com.mob.MobSDK
import org.litepal.LitePal

class LifeUpApplication : Application() {
override fun onCreate() {
super.onCreate()
MobSDK.init(this)
LitePal.initialize(this);
}
}
阅读更多

人升开发日志#6 | 6/19 Launch Screen

当我们打开 app 的时候,可能会出现一段短暂的白屏或者黑屏界面,这个界面就是 Launch Screen

Launch Screen是为了优化用户体验而存在的,一点击就出现一个界面,让用户有流畅的感觉。

然而,如果只是纯色的白或者黑,就有点丑了。

一般的做法是放logo以及标语。

Launch Screen 实际上是一种 Theme。

**所以我们可以用修改Theme的方式来自定义我们的Launch Screen

我们实现的只显示logo的Launch Screen(可能会修改):

阅读更多

人升开发日志#5 | 6/17 布局复用

我们之前做引导页的时候,是一个页面一个xml布局文件。

这些布局文件其实只有些许不同,只是加载的动画不同、TextView显示的文本不同,最后一页多了个按钮而已。

实际上,我们可以只用一个xml布局文件,然后在代码中实现各个页面的异化。

阅读更多

人升开发日志#4 | 6/11 多语言

当你在页面布局文件中写死字符串(Hardcoding string)的时候,编译器会报一个警告,让你用@string替代。

@string就是让程序在运行状态,再去找相应的资源文件,加载其中的字符串内容。

而 Android 会在不同的情况下加载不同的资源文件,这就是我们实现多语言的基础。

最终效果:

阅读更多

人升开发日志#3 | 6/8 自适应图标

将开发日志#1做的图标加入到应用中,但是 Android O 加入了一个叫做 Adaptive Icons 的特性,为了适配这个性质稍微有点麻烦。


设置AndroidManifest.xml

AndroidManifest.xml<application后面加上

1
2
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher"

icon 指的是普通图标

roundIcon 指的是圆形图标

阅读更多

人升开发日志#2 | 6/7 引导页

继续鸽需求文档,突然想要开始敲 Android 端的代码。

本文主要涉及到:

  • ViewPager + Fragment 组合使用
  • 沉浸式状态栏
  • 页面指示器框架
  • 使用 Lottie 框架显示动画
  • ViewPager 的简单优化
  • ViewPager 背景色渐变
  • Android Studio 录制手机屏幕

先发一下最终效果:

阅读更多

人升开发日志#1 | 6/1 APP 图标设计

名字由来

初想过的项目名是“升级人生”、“游戏人生”之类,就想到了以”人“字为原型设计 APP 图标。

仅有一个”人“字未免显得有些单调,于是乎想到”升“字,那么就把”人“字的两笔换成向上升的形态?

APP 图标就由此诞生了。

最终稿是这个样子的:

阅读更多