同名公众号 - 人生代码
这个作者很懒,什么都没留下…
展开
-
FaceTools工具类
package com.goolton.camerademo.tool;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Co...原创 2019-04-11 17:38:37 · 1763 阅读 · 0 评论 -
surfaceView打开摄像头预览
activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" x...原创 2019-04-11 10:19:27 · 1658 阅读 · 0 评论 -
android:versionCode和android:versionName 用途
Android的版本可以在androidmainfest.xml中定义,主要有android:versionCode和android:versionNameandroid:versionCode:主要是用于版本升级所用,是INT类型的,第一个版本定义为1,以后递增,这样只要判断该值就能确定是否需要升级,该值不显示给用户。android:versionName:这个是我们常说明的版本号,由三部分...原创 2019-04-10 10:12:49 · 2052 阅读 · 0 评论 -
深入理解 System.loadLibrary
深入理解 System.loadLibrary原创 2019-04-09 18:25:49 · 2049 阅读 · 0 评论 -
手机APP开发之车牌识别SDK移植
手机APP开发之车牌识别SDK移植原创 2019-04-09 18:24:34 · 1064 阅读 · 1 评论 -
彻底弄清support支持库,以及v4 v7重复依赖问题深究
彻底弄清support支持库,以及v4 v7重复依赖问题深究原创 2019-04-09 18:22:49 · 511 阅读 · 0 评论 -
Android studio 3.0: Unable to resolve dependency for :app@dexOptions/compileClasspath'
Android studio 3.0: Unable to resolve dependency for :app@dexOptions/compileClasspath’: Could not resolve project :animators原创 2019-04-09 18:21:34 · 726 阅读 · 0 评论 -
一分钟了解Android横竖屏 mdpi hdpi xhdpi xxhdpi xxxhdpi
DPI:每英寸像素数简单的屏幕分辨率计算方法:DisplayMetrics metrics = this.getResources().getDisplayMetrics();float density = metrics.density;int dpi = metrics.densityDpi;int heightPixels = metrics.heightPixels;int w...原创 2019-04-09 18:18:28 · 1005 阅读 · 0 评论 -
@SuppressLint(“HandlerLeak”)
碰到方法的前面和类的前面有时会出现@SuppressLint或者@SuppressWarnings这样的黄色警告,看起来很不舒服,于是上网搜集了一些相关资料。发现这些警告的出现其实是由于我们编写代码时的一些不规范的写法导致,解决这些问题其实是能提高我们程序的安全性、可用性和性能的。接下来就让我为大家一一说明。1、@SuppressLint(“DrawAllocation”)原因:我们都知道Vi...转载 2019-04-09 17:43:49 · 704 阅读 · 0 评论 -
Android_安卓为按钮控件绑定事件的五种方式
一、写在最前面本次,来介绍一下安卓中为控件–Button绑定事件的五种方式。二、具体的实现第一种:直接绑定在Button控件上:步骤1.在Button控件上设置android:onClick=",其中这个属性的属性值对应的是MainActivity类中的方法名字(自己创建的方法):步骤2.在MainActivity类中创建相对应的方法: public void demo(View ...原创 2019-04-09 17:20:31 · 4381 阅读 · 3 评论 -
Android Studio中程序能运行,但代码有红色波浪线(the logging tag can be at most 23 characters)
File->settings,然后按照下图的顺序操作,即在左边搜索Lint,然后在右边的搜索框搜索Too Long,并把其后面的勾取消掉,然后选择点击Apply,最后OK就可以了...原创 2019-04-08 20:00:21 · 1856 阅读 · 0 评论 -
解决"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"错误
今天安装了Android Studio 3.2,打开一个旧工程,编译提示"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"网上也有解决办法,就是下载旧版的NDK,将其中的toolchain复制到新版的NDK中但是感觉这种方式,不是解决的正道。经过对新版ND...转载 2019-04-07 20:15:24 · 655 阅读 · 0 评论 -
Android之SurfaceView使用总结
1.概念 SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。2.实现方法1)实现步骤a.继承Surfa...原创 2019-04-04 11:55:00 · 1494 阅读 · 0 评论 -
Camera is being used after Camera.release() was called
@Override protected void onDestroy() { super.onDestroy(); if (camera!=null){ camera.stopPreview(); camera.release(); camera = null; } ...原创 2019-04-04 10:37:46 · 8575 阅读 · 2 评论 -
帧布局(FrameLayout)
今天来说下 Android中几大布局中的FrameLayout, FrameLayout是几个布局中最简单的一个布局,我通常喜欢称它为最纯净的布局。在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。相同层级布局中 FrameLayout的效率也是最高的,占用内存相...转载 2019-04-04 09:06:31 · 3470 阅读 · 0 评论 -
Android中的SurfaceView详解
Android中提供了View进行绘图处理,View可以满足大部分的绘图需求,但是有时候,View却显得力不从心,所以Android提供了SurfaceView给Android开发者,以满足更多的绘图需求。下面就让我们一起来了解一下SurfaceView。一、为什么要使用SurfaceView我们知道View是通过刷新来重绘视图,系统通过发出VSSYNC信号来进行屏幕的重绘,刷新的时间间隔是1...原创 2019-04-04 08:40:25 · 695 阅读 · 0 评论 -
关于android的YuvImage旋转
YuvImage 在安卓中不常用,远远没有Bitmap那么常见。我搞了那么久安卓开发,因为之前没有接触相机相关的开发,所以这个YuvImage还是第一次碰到。其中是在Camera类的的PreviewCallback回调中这个接口回调的是相机的预览图像,但是是YUV格式的,起初我想吧这个byte数组转换成bitmap,用BitmapFactory转后拿到null的对象显然,这个byte数组不...转载 2019-04-04 08:40:35 · 1048 阅读 · 0 评论 -
android Rect类的使用
转载 2019-04-04 08:40:46 · 715 阅读 · 0 评论 -
byte[],Bitmap,YuvImage,Drawable 旋转、缩放、相互转化
好东西要转载,让等多人知道,这是我一直依赖的信念1、byte->Bitmap在相机开发中,Camera获取到摄像头每一帧的图像数据byte[],有时候需要把它转为Bitmap@Override public void onPreviewFrame(final byte[] data, Camera camera) { camera.setPreviewCallb...转载 2019-04-04 08:40:56 · 1140 阅读 · 0 评论 -
Android Studio 添加jar或aar依赖的两种方式
这里假设jar和aar都放到module的libs目录下.方式一在module目录下的build.gradle的dependencies中,添加implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')此种方式简单粗暴,但是不允许同时出现同一模块不同编译类型的jar(或aar),例如,如果libs同时存在test-...原创 2019-04-04 08:41:06 · 878 阅读 · 0 评论 -
android 调用Camera,获取预览帧中的图像
1:说明android开发实现Camera自定义的话,也并不是件难事,主要步骤如下:打开相机,即实例化Camera对象,Camera camera = Camera.open();设置Camera的相关参数,Camera.Parameters parameters = camera.getParameters();打开预览,camera.setPreviewDisplay(surface...原创 2019-04-04 08:41:15 · 1622 阅读 · 0 评论 -
Android Bitmap知识梳理学习
Android Bitmap知识梳理学习原创 2019-04-03 08:38:28 · 599 阅读 · 0 评论 -
View.post原理分析
我们可以直接使用View对象调用post(runnable),是因为View里面有主线程Handler对象?是每个View都有一个Handler还是公共的。当View没有AttachedToWindow的时候View.post是无效的。所有的View的post方法都是直接继承于View类的post(Runnable action)方法: public boolean post(Run...原创 2019-04-03 08:38:49 · 1209 阅读 · 0 评论 -
Android Bitmap Api总结和使用方法
Android Bitmap Api总结和使用方法转载 2019-04-03 08:39:24 · 606 阅读 · 0 评论 -
Bitmap的复制和软引用
Bitmap是不能通过“ A = B ”来传递的,这样只是把B的引用给了A而已复制有两个方法:第一:copy方法:根据该位图的大小产生一个新位图,根据指定的结构设置新位图的结构,然后把位图的像素拷贝到新位图中。如果不支持该转换,或者分配内存失败,那就返回NULL。返回的位图和原图有同样的像素密度。参数 config 结果图预期的结构; isMutable 如果是true,那...转载 2019-04-03 08:39:01 · 808 阅读 · 0 评论 -
Android绘图之Paint的使用方法详解
The Paint class holds the style and color information about how to draw geometries, text and bitmaps.Paint:该类保存了绘制几何图形、文本和位图的样式和颜色信息。也就是说我们可以使用Paint保存的样式和颜色,来绘制图形、文本和bitmap,这就是Paint的强大之处。接下来我们使用Paint...转载 2019-04-03 08:39:38 · 607 阅读 · 0 评论 -
Android Bitmap详解
一、基本信息Bitmap位图包括像素以及长、宽、颜色等描述信息。长宽和像素位数是用来描述图片的,可以通过这些信息计算出图片的像素占用内存的大小。位图可以理解为一个画架,把图放到上面然后可以对图片做一些列的处理。位图文件图像显示效果好,但是非压缩格式,需要占用较大的存储空间。1. Config:表示图片像素类型,包括ALPHA_8、RGB_565、ARGB_4444、ARGB_8888 A:...原创 2019-04-03 08:39:48 · 460 阅读 · 0 评论 -
经典算法系列之(一) - BitMap
BitMap从字面的意思,很多人认为是位图,其实准确的来说,翻译成基于位的映射,怎么理解呢?举一个例子,有一个无序有界int数组{1,2,5,7},初步估计占用内存44=16字节,这倒是没什么奇怪的,但是假如有10亿个这样的数呢,10亿4/(102410241024)=3.72G左右。如果这样的一个大的数据做查找和排序,那估计内存也崩溃了,有人说,这些数据可以不用一次性加载,那就是要...原创 2019-04-03 08:41:26 · 451 阅读 · 0 评论 -
Bitmap的深入理解
Android内存分配Java Head(Dalvik Head),这部分的内存是由Dalvik虚拟机管理,可以通过java的new方法来分配内存;而内存的回收是符合GC Root回收规则。内存的大小受到系统限制,如果使用内存超过App最大可用内存时会抛出OOM错误。Native Head,这部分内存,不受Dalvik虚拟机管理的,内存的分配和回收是通过C++的方式来创建和释放的,没有自动回收...原创 2019-04-03 08:41:36 · 1590 阅读 · 0 评论 -
创建一个纯色的Bitmap(任意颜色)
MainActivity.javapackage com.example.bitmap;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.v7.a...原创 2019-04-03 08:41:45 · 6830 阅读 · 1 评论 -
可空类型Nullable
Nullable类型:值类型变量默认为0,不可空,为了使它可空,出现了Nullable类型,类型前面加? 变为引用类型值类型是没有null值的,比如int,DateTime,它们都有默认值。举个例子,在访问数据库时,会存在一定的问题,Person类有字段Age(int类型),Birthday(DateTime),如果没有给它们赋值,我们期望的是向数据库插入时,应该是null,而不是0和000...原创 2019-04-03 08:41:55 · 809 阅读 · 0 评论 -
View.inflate()和LayoutInflater.inflate()的区别
一、LayoutInflater.inflate()1. 获取LayoutInflater实例getLayoutInflater();这个方法可以在Activity和Fragment中使用,不过在Fragment中使用时,要传入一个bundle参数// Activity中使用LayoutInflater layoutInflater = getLayoutInflater();//...原创 2019-04-03 08:42:05 · 798 阅读 · 0 评论 -
Android对话框之dismiss和cancel和hide区别
在我们看来两者效果都是一样的,其实看下源码就知道cancel肯定会去调dismiss的,如果调用的cancel的话就可以监听DialogInterface.OnCancelListener。/** * Cancel the dialog. This is essentially the same as calling {@link #dismiss()}, but it will ...原创 2019-04-03 08:42:14 · 1788 阅读 · 0 评论 -
Java Character 类
public class Chara { public static void main(String[] args) { char ch = 'a'; char uniChar = '\u039A'; //char[] charArr = ['a', 'b', 'c', 'd', 'e']; Character chq ...原创 2019-03-31 14:11:02 · 505 阅读 · 0 评论 -
Java Number & Math 类
public class number { public static void main(String[] args) { Integer x = 5; x = x + 10; System.out.println(x); }}当 x 被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,...原创 2019-03-31 13:46:56 · 496 阅读 · 0 评论 -
Java switch case 语句
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量...原创 2019-03-31 13:33:29 · 1006 阅读 · 2 评论 -
Java 循环结构 - for, while 及 do...while
while 循环do…while 循环for 循环for循环虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。for循环执行的次数是在执行前就确定的。语法格式如下:for(初始化; 布尔表达式; 更新) { //代码语句}关于 for 循环有以下几点说明:最先执...原创 2019-03-31 13:27:23 · 582 阅读 · 0 评论 -
Java 运算符
算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符算术运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。表格中的实例假设整数变量A的值为10,变量B的值为20:运行结果如下自增自减运算符1、自增(++)自减(–)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。...原创 2019-03-31 13:10:49 · 461 阅读 · 0 评论 -
Java 修饰符
访问修饰符default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)public : 对所有类可见。使用对象:类、接口、变量、方法protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。默认...原创 2019-03-31 11:49:02 · 484 阅读 · 0 评论 -
Java 变量类型
/** * 类变量:独立于方法之外的变量,用 static 修饰。 * 实例变量:独立于方法之外的变量,不过没有 static 修饰。 * 局部变量:类的方法中的变量。 * int a, b, c; // 声明三个int型整数:a、 b、c * int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 * byte z = 22; ...原创 2019-03-31 11:22:10 · 437 阅读 · 0 评论