摘要:登录和授权的区别 登录:身份认证,即确认【你是你】的过程 授权:由身份或持有的令牌确认享有某些权限(例如获取用户信息)。登录过程的目的实际上也是为了确认权限 登录:身份认证,即确认【你是你】的过程 授权:由身份或持有的令牌确认享有某些权限(例如获取用户信息)。登录过程的目的实际上也是为了确认权限 因
阅读全文
摘要:在Java程序中,我们拥有多种新建对象的方式。除了最为常见的new之外,我们还可以通过反射机制、反序列化、object.clone方法以及Unsafe.allocateInstance方法来新建对象 Object.clone方法和反序列化通过直接复制已有的数据,来初始化新建对象的实例字段。Unsaf
阅读全文
摘要:全新定义view的尺寸和和修改尺寸的重要区别 需要在计算的同时,保证计算结果满足父view给出的尺寸限制 父view的尺寸限制 限制上限AT_MOST 不限制Unspecified 固定值EXACTLY 全新定义自定义view尺寸的方式 重写OnMeasure(),并计算出view的尺寸 使用res
阅读全文
摘要:如何自定义属性 在res文件夹下的values目录,新建attrs.xml(如果没有此文件的话) 在attr.xml中定义属性,示例如下: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MapV
阅读全文
摘要:其中rootPath是外置sd卡的根目录,返回的是MB
阅读全文
摘要:布局过程的含义 布局过程就是在程序运行时利用布局文件的代码来计算出实际尺寸的过程 布局过程就是在程序运行时利用布局文件的代码来计算出实际尺寸的过程 布局过程的工作内容 两个阶段:测量阶段和布局阶段 测量阶段: 从上到下递归地调用每个View或者ViewGroup的measure()方法测量他们的尺寸
阅读全文
摘要:关于复杂的属性关系来做动画就这么三种: 使用PropertyValuesHolder来对多个属性同时做动画 PropertyValuesHolder propertyValuesHolder = PropertyValuesHolder.ofFloat("alpha",0,1); PropertyV
阅读全文
摘要:super.onDraw(canvas);之前还是之后? 继承 View 类,在 onDraw() 中完全自定义它的绘制。 在之前的样例中,我把绘制代码全都写在了 super.onDraw() 的下面。不过其实,绘制代码写在 super.onDraw() 的上面还是下面都无所谓,甚至,你把 supe
阅读全文
摘要:使用Canvas做常见的二维变换 canvas.translate canvas.rotate canvas.scale canvas.skew 使用Matrix做常见的和不常见的二维变换 Matrix做变换的常见方式 new一个Matrix对象 调用Matrix的pre/postTranslate
阅读全文
摘要:StaticLayout。这个也是使用 Canvas 来进行文字的绘制,不过并不是使用 Canvas 的方法。Canvas.drawText() 只能绘制单行的文字,而不能换行。它:不能在 View 的边缘自动折行 taticLayout 的构造方法是 StaticLayout(CharSequen
阅读全文
摘要:Paint.setStyle(Paint.Style style) setStyle(Style style) 这个方法设置的是绘制的 Style 。Style 具体来说有三种: FILL, STROKE 和 FILL_AND_STROKE 。FILL 是填充模式,STROKE 是画线模式(即勾边模
阅读全文
摘要:Paint.setStrokeCap(cap) 可以设置点的形状,但这个方法并不是专门用来设置点的形状的,而是一个设置线条端点形状的方法。端点有圆头 (ROUND)、平头 (BUTT) 和方头 (SQUARE) 三种,具体会在下一节里面讲。 Path path = new Path(); path.
阅读全文
摘要:绘制 自定义绘制主要是重写绘制方法,其中主要的方法就是onDraw() 绘制的关键是Canvas的使用 Canvas的绘制类方法:drawxxx()(关键参数Paint) Canvas辅助类方法:范围裁剪和几何变换 可以使用不同的绘制方法来控制遮盖关系 自定义绘制主要是重写绘制方法,其中主要的方法就
阅读全文
摘要:private FileOutputStream fileOutputStream; private static final String FILENAME = "Hello"; File file = new File(Environment.getExternalStorageDirector
阅读全文
摘要:SharedPreference文件 内部存储 openFileOutput,将返回一个OutputStream 使用Write写入到文件 使用close关闭流 保存缓存文件 如果你想要缓存一些文件,而不是永久地存储,应该使用rgetCacheDir(path:/data/data/com.safe
阅读全文
摘要:新建一个类(ex:UserDBHelper)继承SQLiteOpenHelper 构造函数里面建数据库 public UserDBHelper(Context context, int version) { super(context, DB_NAME,null,version); } onCrea
阅读全文
摘要:package com.safeluck.floatwindow; import android.app.Service; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.PixelFormat; impor...
阅读全文
摘要:在应用中集成Stetho Stetho GitHub地址https://github.com/facebook/stetho 新建Application类 public class MyApplication extends Application { @Override public void o
阅读全文
摘要:如果您希望向现有项目添加原生代码,请执行以下步骤: 如果您已经拥有原生代码或想要导入预构建的原生库,则可以跳过此步骤。 如果您的现有原生库已经拥有 CMakeLists.txt 构建脚本或者使用 ndk-build 并包含 Android.mk 构建脚本,则可以跳过此步骤。 配置完项目后,您可以使用
阅读全文
摘要:package com.safeluck.facedetect.videodemo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.text.TextUtils; import android.util.Log; import java.util.L...
阅读全文