自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (6)
  • 收藏
  • 关注

原创 Mapper 自定义注解器

java 自定义注解器 Mapper,并提交私仓 maven1. java 自定义注解器1.1 注解器作用通过元注解对类、变量等进行标记,在代码编译期通过解析器 AbstractProcessor 进行解析,快速实现模板代码的构建等作用1.2 自定义注解通过 @interface 实现注解,如:@Target(ElementType.TYPE)@Retention(RetentionPolicy.CLASS)public @interface MapType { String name()

2020-07-12 17:55:24 961

原创 YUV 图像左右旋转处理 java实现

YUV 图像左右旋转处理 java实现android 设备调用后置摄像后,直出图像保存一般存在旋转90度,所以我们需要进行一次旋转,下面是旋转的说明。以图像编码为 NV21 为例,直出图像为逆时针旋转90度,故需顺时针旋转90度将图像放正。示例图片逆时针旋转了90度:正确方向的图片:NV21 编码为 YYYY VUVU,定义直出的图片宽为 width(200),高为 height(4...

2019-12-11 17:16:51 914

原创 Retrofit 返回值序列化增加 JSONObject 类型

Retrofit 返回值序列化增加 JSONObject 类型支持如 {"msg":"success","code":0,"data":{}} 对应类为data class Result(val code: Int = 0, val msg: String = "", val data: JSONObject = JSONObject())让结果 data 不再为空空花括号 { }一、...

2019-11-13 16:04:04 2025

原创 Android 监听页面无操作,定时返回(动态代理)

一、Android 监听页面无操作,定时返回已有项目新增需求,需监听页面是否有操作,如果在一定时间内没有操作则返回到指定页面。像一些定制化系统如果长时间停留在工程调试页面是不安全的,所以需要返回到主页,同样像电视盒子在感知无操作可以跳转到广告/屏保。因为是已有项目,所以希望以尽可能小的代码入侵完成我们的功能。二、功能分析首先需要一个计时的功能。一般想法是设置定时器,如果有操作就取消上...

2019-06-08 19:01:27 3176

原创 AndroidAnnotation Could not find the AndroidManifest.xml file,

使用 AndroidAnnotation 注解框架提示找不到 AndroidManifest.xmlGradle may disable incremental compilation as the following annotation processors are not incremental: androidannotations-4.5.1.jar (org.androidannot...

2019-04-18 17:56:43 4333

原创 加速单元测试 Robolectric 环境搭载

一、单元测试单元测试一直是编程开发重要的一部分,但在 Android 应用开发经常被忽视,转而由人工测试替代。除了 Android 功能测试涉及代码编写外,还有上下依赖的 context 传递,但这一切都不该是我们直接放弃单元测试的原因,单元测试除了在代码编写后检查设计功能的完整性,还能快速捕获和修复因代码更改(重构、优化等)带来的回归问题。今天主要介绍 Robolectric 的环境搭载,如...

2019-04-17 14:45:22 1407

原创 关于 Gradle 依赖库的几个东西

一、 Gradle 的依赖包在使用 eclipse 做项目的使用,如果要使用别人的库,要么clone工程到自己项目再添加依赖,或者导出为jar包引入,或者直接去找jar再添加到项目路径(add to path)。而使用maven,将查找下载jar这个过程简化,直接通过 dependency 指定依赖库名、版本,接着自动从maven下载并添加到项目中。二、 Gradle 除了引用线上仓库版本,...

2019-03-16 18:26:56 1018

原创 当我们在讨论 Gradle 时,我们在说什么

关于 Android Gradle 的模糊点当我们在讨论 Gradle 时,除了猜测,我们还能知道些什么。前几天参加一个面试,被问到关于 Gradle 的问题,毫无准备当然让面试官失望,对 Gradle 处于会用的状态,但被问到一些细节的东西只能猜测,所以就有了这篇,除了 Gradle 这个名词,我们还知道什么。一、什么是 Gradle官网说明Gradle is an open-sou...

2019-02-24 18:07:45 219

原创 使用 CoordinatorLayout + 自定义 Behavior 实现卡片堆叠效果

使用 CoordinatorLayout 实现堆叠效果一、视图之间的滑动关联,使用 Behavior 连接如官方示例中在布局中增加 AppBarLayout 布局,将需关联变化的 View 通过 标签app:layout_behavior="@string/appbar_scrolling_view_behavior" 建立连接关系,当AppBarLayout 发生变化会通知关联的子 view...

2019-01-20 17:27:34 1216

原创 自定义 ViewGroup ,实现卡片堆叠效果

需求想做一个卡片堆叠效果的滑动,两个视图,滑动过程将第二个view叠加在第一个view上边,形成叠加的效果,有点像 NestedScrollView + CoordinatorLayout + Toolbar 的效果。预览图如下:看起来有点像 NestedScrollView+Toolbar 的效果,只是里面的变换不一样,往上推过程第二个控件往上移动,第一个 view 不发生变换。我这个是自...

2019-01-06 13:48:26 1307 1

原创 Android 7.1.2 源码修改,使用自己的 app 作为默认桌面,不弹出桌面选择弹窗

需求:使用自己开发的桌面 app 作为默认,不再出现桌面选择在不修改源码前提下,可以设置自己的app为桌面,但是如果自己的应用出现崩溃,则在 Android 启动机制下会弹出桌面选择弹窗,如果在定制的系统中,这个是不能接受的,但本身在开发也需要使用默认 launcher 进行其他的一些设置,所以需要保留多个桌面启动器。1、解决思路在没有自己的启动器时候,由系统自己处理,即弹出弹窗选择或者使用...

2018-12-25 16:55:27 4641 2

原创 查询手机已安装应用大小,适配 android 8

一、查询手机所有已安装的应用可以通过 PackageManager 来获取,可以使用PackageManager pm = context.getPackageManager();List<ApplicationInfo> apps = pm.getInstalledApplications(0);//或者PackageManager pm = context.getPa...

2018-12-23 15:00:25 1762

原创 使用 RK3399 搭载 Android 系统7.1.2,出现 AudioTrack 有时无法播放 PCM 音频

RK3399 在 Android 系统 7.1.2,出现 AudioTrack 有时无法播放 PCM 音频的问题问题背景:切换 rk3399 后,搭载系统为 Android 7.1.2,如果单独使用 audiotrack 播放 PCM 音频是没有问题,但是应用在智能家居上,一般都需要和语音识别打交道,在开启录音后,很大的几率出现播放 PCM 音频不出声,查看log日志发现在录音短暂关闭后能恢复...

2018-12-18 16:25:12 1925 5

原创 Android 获取手机存储总大小,系统占用空间

一、Android 存储介绍及通常查询大小手机存储有两种,内置内存和外置内存(SD),目前可扩展内存的机型正在减少,大部分是内置存储的手机,内置128G、256G已经很常见,但如果有扩展功能的话,买个乞丐版+SD卡也是美滋滋,毕竟厂家增加存储空间后手机定价也不便宜。言归正传,获取存储空间,很简单,使用中的 android.os.StatFs,传入需查阅的内存路径即可查询总内存大小,剩余可用空间,...

2018-12-08 22:00:02 30320 12

原创 (一)Android camera2 实现相机预览及获取预览帧数据流

一、本文重点说明本文基于 android camera2 实现视频预览,暂未兼容 camera1 API,基础实现可以参考 googlesample Camera2 例子 android-Camera2Basic ,本文以工具类形式实现一步调用。谷歌例子中没有具体指明预览帧的获取,即 camera1 setPreviewCallback 类似功能实现,具体是通过 ImageReader 中...

2018-11-04 22:45:51 56258 40

原创 (五)java 线程池工作队列

线程池工作队列  上一章我们介绍了线程的基本情况,这一章进一步了解线程池中的工作队列,BlockingQueue 队列。在类 Executors 中,我们可以看到不同线程池维护的工作队列是不同的,如newCachedThreadPool使用的是SynchronousQueue 同步队列,newSingleThreadScheduledExecutor使用DelayedW...

2018-07-01 15:20:01 7566

原创 (四)java 线程,线程池的使用

为什么要使用线程池?   创建线程是简单的,但启动后的线程犹如脱缰野马,难于管理,特别是多线程使用场景,线程之间的互相竞争,可能使 cpu 花费更多时间在各个线程之间切换,而且线程结束后的回收由垃圾回收控制,你不知道工作结束的线程还会存活多久,是否持有着什么资源。而且线程对象提供使用方法有限,无法提供定时启动、线程并发数控制等操作,所以,线程池出现了。    线程池提供了对线程的管理,让线程...

2018-06-18 00:15:41 188

原创 (三)java 线程,多线程数据安全同步、锁

前言: 当应用启动后,有一条主线程贯穿应用的整个生命周期,主线程承载应用的所有事务处理,必须保障主线程一直处于工作状态,及时响应各种请求,所以一些耗时阻塞型的操作就不适合在主线程中进行,从而使用子线程来处理这类型请求,换句话说,主线程充当调度员的角色,将请求分配给子线程处理,需要的话在子线程完成请求后再次通知主线程,由主线程回复该请求,这保证请求被处理,也不会耽误新请求的接收。优点 多线程...

2018-06-10 16:01:12 287

原创 (二)java 线程运行暂停、停止

在开始本文之前,需要了解线程的状态,分别是://更详细的解释可以见源码 Thread.class 中的 Statepublic enum State{ NEW,//新建状态 RUNNABLE,//运行状态 BLOCKED,//阻塞状态 WAITING,//等待状态 TIMED_WAITING,//有时间限制的...

2018-06-03 18:38:14 3986

原创 (一)java 线程初步了解

线程线程的创建继承类 Thread,重写 public void run()实现接口 Runnable,重写 public void run()实现接口 Callable<V>,重写 public V call(),构建 FutureTask<V>(callable),新建线程,如 new Thread(futureTask).start(),示例: ...

2018-05-20 17:16:47 200

原创 Looper, Handler, Message, Thread

在子线程中创建能否创建多个 Handler ,是否会存在多个 Looper?可以创建多个 Handler ,但不会存在多个 Looper ,在调用 Handler handler; new Thread(){ public void run(){ Looper.prepare();//实例一个 Looper 加入 ThreadL...

2018-03-30 23:58:11 181

原创 RecyclerView 列表、网格滑动到指定位置

RecyclerView (GridLayout) 滑动到指定位置我的 RecyclerView 才不会这么笨!RecyclerView 布局有三类,列表(横竖)、网格、瀑布流( 不规则),让某一个 item 显示在最上方(非最后一项),使用 scrollPosition 将某一个位置设置可见第一项,或者计算显示的 item 距离第一项距离,用 scrollBy 移动过去,常用使用下...

2018-02-17 19:36:51 2062 1

原创 Android Sipdroid 对外通话建立过程分析,以及监听通话接通时刻

此文不完善,无需浪费时间阅读,谢谢。感谢博友 @我闹 问题(怎么获得通话建立的时间点,不用广播)的提出,才促使我继续写这篇分析文章。这篇文是上一篇Sipdorid的分析,进一步说明对外呼出的建立过程,如有错误,请指出。CallCard中有两类注意一下,一个是更新通话界面的方法//对外暴露的方法:更新如通话时间,通话状态public void displayMainCallStat...

2017-09-10 14:57:03 1255 1

原创 Kotlin初体验

Kotlin 第一个Android Project

2017-07-08 23:39:29 472

原创 Android Sipdroid 语音通话项目简单使用

Sipdroid 项目类、结构的介绍可以参考下面博客: http://blog.csdn.net/harvey2008/article/details/8484970具体的文档介绍百度百科有,可以查阅,这里不贴链接了。使用: sipdroid 账号设置,开启注册在onCreate 中进行初始化Receiver.mContext = this;Sipdroid.on(this, true);/

2016-08-04 20:53:47 7538 12

原创 AndroidStudio Toolbar 滑动隐藏以及返回按钮点击事件

Android Toolbar 实现收缩展开动画: 使用 CoordinatorLayout 作为做外层布局, ToolBar 使用 AppBarLayout和 CollapsingToolbarLayout 两个嵌套。CollapsingToolbarLayout 需指定 layout_scrollFlags :scroll,exitUntilCollapsed,enterAlwaysColl

2016-06-15 17:55:08 13530

原创 百度地图java.lang.NoSuchMethodException:startScan解决

配置文件里面服务修改: 把百度Demo中的一个服务<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" ></service>更改为:<service android:name="com.baidu.location.f"

2016-06-14 10:42:05 1633

原创 百度地图定位失败,定位结果是4.9E -324,解决

项目老版本可以定位成功,我重新打包的版本定位失败,结果4.9E-324。 解决方案:确定libs文件夹下百度地图的jar包是否导入完整 baidumapapi_v2_4_2.jar locSDK_3.1.jar armeabi文件夹下的 .so 是否完整 libBaiduMapSDK_v2_4_2.so liblocSDK3.so两个版本jar包和so库要一一对应。我上面是老版本的地图,

2016-03-24 11:04:09 6995

原创 PathButtonView 控件

参考:鸿洋 ArcMenu 点此跳转参考了鸿洋的动态添加按钮,在基础上增加了左右上下中间的按钮。纯属练手。效果图: 使用自定义属性,对外提供参数设置方法,点击监听。动态添加按钮个数private void init() { LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(

2016-01-06 22:57:17 350

原创 Android开发 PathButton 简单实现

偶然看到Path的动画很炫酷,就想网络找一个来看看,结果 == ,所以摸索写了一个,无非是一个主按钮+卫星按钮,摆放好位置即可。本来想写成一个拓展性的,结果脑袋卡壳半天不知道怎么写,所以还是贴一个固定位置的,有时间在改吧。动画效果:位移+旋转+透明点击效果:放大+透明(没做)效果图 代码比较简单,直接贴package com.zhou.pathbuttonview;import jav

2015-12-25 16:21:14 1072

原创 Android 方向传感器的简单使用

方向传感器基本是Android手机必备功能,所有这个demo基本都可以使用。 界面一个ImageView(蓝色条) 下面是自己画的圆和线(最开始没去找图,懒)<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and

2015-12-23 11:39:15 721

原创 跨App启动Activity,隐式Intent启动,ActivityNotFoundException解决

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-12-18 16:18:03 2316

原创 TextView ellipsize=“marquee” 跑马灯效果不能实现,解决

在TextView 添加了        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:singleLine="true"        android:ellipsize="marquee"        android:marq

2015-11-24 10:50:41 2411

原创 关于ActivityManagerNative 类加载异常

在导入他人的工程后出现异常,The import android.app.ActivityManagerNative cannot be resolve;即android.app.ActivityManagerNative 异常解决方案:  工程下右键>>PropertiesJava Build Path 下的Libraries remove

2015-11-24 10:42:26 1165

ijkmediaplayer 全量 so-0.8.8

ijkmediaplayer 全量 so 库 0.8.8 版本,压缩包解压即可使用,内附有建议使用说明 注:下载后不要评价,避免积分被调高

2020-12-03

com.zhou.android.opengl

通过 openGL 将camera回调数据帧yuv格式直接显示出来,内部 shaper 转换 重置下载积分为0(文字补充字数补丁文字补充字数补丁文字补充字数补丁

2018-11-04

com.zhou.android.camera2

com.zhou.android.camera2 工具类,简单对 camera2 进行封装 文字补充字数补丁文字补充字数补丁文字补充字数补丁

2018-11-04

PathButtonView

开发环境Eclipse,将控件独立出来,具备自定义个数,图片,位置等方法。然而还可以继续优化,demo可以下来看看。

2016-01-06

PathButtonView Demo

PathButtonView Demo ,Path软件的按钮动画,觉得挺有趣,目前的是写死一个,有机会再修改

2015-12-25

Android方向传感器Demo

Android 方向传感器 简单 demo 使用 androidstudio 环境,代码量很少

2015-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除