Android开发
文章平均质量分 62
__xiaozhou
这个作者很懒,什么都没留下…
展开
-
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 · 983 阅读 · 0 评论 -
YUV 图像左右旋转处理 java实现
YUV 图像左右旋转处理 java实现android 设备调用后置摄像后,直出图像保存一般存在旋转90度,所以我们需要进行一次旋转,下面是旋转的说明。以图像编码为 NV21 为例,直出图像为逆时针旋转90度,故需顺时针旋转90度将图像放正。示例图片逆时针旋转了90度:正确方向的图片:NV21 编码为 YYYY VUVU,定义直出的图片宽为 width(200),高为 height(4...原创 2019-12-11 17:16:51 · 925 阅读 · 0 评论 -
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 · 2053 阅读 · 0 评论 -
查询手机已安装应用大小,适配 android 8
一、查询手机所有已安装的应用可以通过 PackageManager 来获取,可以使用PackageManager pm = context.getPackageManager();List<ApplicationInfo> apps = pm.getInstalledApplications(0);//或者PackageManager pm = context.getPa...原创 2018-12-23 15:00:25 · 1794 阅读 · 0 评论 -
使用 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 · 1956 阅读 · 5 评论 -
Android 7.1.2 源码修改,使用自己的 app 作为默认桌面,不弹出桌面选择弹窗
需求:使用自己开发的桌面 app 作为默认,不再出现桌面选择在不修改源码前提下,可以设置自己的app为桌面,但是如果自己的应用出现崩溃,则在 Android 启动机制下会弹出桌面选择弹窗,如果在定制的系统中,这个是不能接受的,但本身在开发也需要使用默认 launcher 进行其他的一些设置,所以需要保留多个桌面启动器。1、解决思路在没有自己的启动器时候,由系统自己处理,即弹出弹窗选择或者使用...原创 2018-12-25 16:55:27 · 4689 阅读 · 2 评论 -
自定义 ViewGroup ,实现卡片堆叠效果
需求想做一个卡片堆叠效果的滑动,两个视图,滑动过程将第二个view叠加在第一个view上边,形成叠加的效果,有点像 NestedScrollView + CoordinatorLayout + Toolbar 的效果。预览图如下:看起来有点像 NestedScrollView+Toolbar 的效果,只是里面的变换不一样,往上推过程第二个控件往上移动,第一个 view 不发生变换。我这个是自...原创 2019-01-06 13:48:26 · 1322 阅读 · 1 评论 -
使用 CoordinatorLayout + 自定义 Behavior 实现卡片堆叠效果
使用 CoordinatorLayout 实现堆叠效果一、视图之间的滑动关联,使用 Behavior 连接如官方示例中在布局中增加 AppBarLayout 布局,将需关联变化的 View 通过 标签app:layout_behavior="@string/appbar_scrolling_view_behavior" 建立连接关系,当AppBarLayout 发生变化会通知关联的子 view...原创 2019-01-20 17:27:34 · 1222 阅读 · 0 评论 -
当我们在讨论 Gradle 时,我们在说什么
关于 Android Gradle 的模糊点当我们在讨论 Gradle 时,除了猜测,我们还能知道些什么。前几天参加一个面试,被问到关于 Gradle 的问题,毫无准备当然让面试官失望,对 Gradle 处于会用的状态,但被问到一些细节的东西只能猜测,所以就有了这篇,除了 Gradle 这个名词,我们还知道什么。一、什么是 Gradle官网说明Gradle is an open-sou...原创 2019-02-24 18:07:45 · 232 阅读 · 0 评论 -
关于 Gradle 依赖库的几个东西
一、 Gradle 的依赖包在使用 eclipse 做项目的使用,如果要使用别人的库,要么clone工程到自己项目再添加依赖,或者导出为jar包引入,或者直接去找jar再添加到项目路径(add to path)。而使用maven,将查找下载jar这个过程简化,直接通过 dependency 指定依赖库名、版本,接着自动从maven下载并添加到项目中。二、 Gradle 除了引用线上仓库版本,...原创 2019-03-16 18:26:56 · 1034 阅读 · 0 评论 -
加速单元测试 Robolectric 环境搭载
一、单元测试单元测试一直是编程开发重要的一部分,但在 Android 应用开发经常被忽视,转而由人工测试替代。除了 Android 功能测试涉及代码编写外,还有上下依赖的 context 传递,但这一切都不该是我们直接放弃单元测试的原因,单元测试除了在代码编写后检查设计功能的完整性,还能快速捕获和修复因代码更改(重构、优化等)带来的回归问题。今天主要介绍 Robolectric 的环境搭载,如...原创 2019-04-17 14:45:22 · 1415 阅读 · 0 评论 -
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 · 4357 阅读 · 0 评论 -
Android 监听页面无操作,定时返回(动态代理)
一、Android 监听页面无操作,定时返回已有项目新增需求,需监听页面是否有操作,如果在一定时间内没有操作则返回到指定页面。像一些定制化系统如果长时间停留在工程调试页面是不安全的,所以需要返回到主页,同样像电视盒子在感知无操作可以跳转到广告/屏保。因为是已有项目,所以希望以尽可能小的代码入侵完成我们的功能。二、功能分析首先需要一个计时的功能。一般想法是设置定时器,如果有操作就取消上...原创 2019-06-08 19:01:27 · 3211 阅读 · 0 评论 -
Android 获取手机存储总大小,系统占用空间
一、Android 存储介绍及通常查询大小手机存储有两种,内置内存和外置内存(SD),目前可扩展内存的机型正在减少,大部分是内置存储的手机,内置128G、256G已经很常见,但如果有扩展功能的话,买个乞丐版+SD卡也是美滋滋,毕竟厂家增加存储空间后手机定价也不便宜。言归正传,获取存储空间,很简单,使用中的 android.os.StatFs,传入需查阅的内存路径即可查询总内存大小,剩余可用空间,...原创 2018-12-08 22:00:02 · 30883 阅读 · 12 评论 -
(一)Android camera2 实现相机预览及获取预览帧数据流
一、本文重点说明本文基于 android camera2 实现视频预览,暂未兼容 camera1 API,基础实现可以参考 googlesample Camera2 例子 android-Camera2Basic ,本文以工具类形式实现一步调用。谷歌例子中没有具体指明预览帧的获取,即 camera1 setPreviewCallback 类似功能实现,具体是通过 ImageReader 中...原创 2018-11-04 22:45:51 · 56410 阅读 · 40 评论 -
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 · 188 阅读 · 0 评论 -
Android开发 PathButton 简单实现
偶然看到Path的动画很炫酷,就想网络找一个来看看,结果 == ,所以摸索写了一个,无非是一个主按钮+卫星按钮,摆放好位置即可。本来想写成一个拓展性的,结果脑袋卡壳半天不知道怎么写,所以还是贴一个固定位置的,有时间在改吧。动画效果:位移+旋转+透明点击效果:放大+透明(没做)效果图 代码比较简单,直接贴package com.zhou.pathbuttonview;import jav原创 2015-12-25 16:21:14 · 1079 阅读 · 0 评论 -
跨App启动Activity,隐式Intent启动,ActivityNotFoundException解决
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-12-18 16:18:03 · 2332 阅读 · 0 评论 -
PathButtonView 控件
参考:鸿洋 ArcMenu 点此跳转参考了鸿洋的动态添加按钮,在基础上增加了左右上下中间的按钮。纯属练手。效果图: 使用自定义属性,对外提供参数设置方法,点击监听。动态添加按钮个数private void init() { LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(原创 2016-01-06 22:57:17 · 358 阅读 · 0 评论 -
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 · 728 阅读 · 0 评论 -
百度地图定位失败,定位结果是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 · 7040 阅读 · 0 评论 -
百度地图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 · 1642 阅读 · 0 评论 -
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 · 2453 阅读 · 0 评论 -
AndroidStudio Toolbar 滑动隐藏以及返回按钮点击事件
Android Toolbar 实现收缩展开动画: 使用 CoordinatorLayout 作为做外层布局, ToolBar 使用 AppBarLayout和 CollapsingToolbarLayout 两个嵌套。CollapsingToolbarLayout 需指定 layout_scrollFlags :scroll,exitUntilCollapsed,enterAlwaysColl原创 2016-06-15 17:55:08 · 13570 阅读 · 0 评论 -
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 · 7590 阅读 · 12 评论 -
Kotlin初体验
Kotlin 第一个Android Project原创 2017-07-08 23:39:29 · 478 阅读 · 0 评论 -
Android Sipdroid 对外通话建立过程分析,以及监听通话接通时刻
此文不完善,无需浪费时间阅读,谢谢。感谢博友 @我闹 问题(怎么获得通话建立的时间点,不用广播)的提出,才促使我继续写这篇分析文章。这篇文是上一篇Sipdorid的分析,进一步说明对外呼出的建立过程,如有错误,请指出。CallCard中有两类注意一下,一个是更新通话界面的方法//对外暴露的方法:更新如通话时间,通话状态public void displayMainCallStat...原创 2017-09-10 14:57:03 · 1261 阅读 · 1 评论 -
RecyclerView 列表、网格滑动到指定位置
RecyclerView (GridLayout) 滑动到指定位置我的 RecyclerView 才不会这么笨!RecyclerView 布局有三类,列表(横竖)、网格、瀑布流( 不规则),让某一个 item 显示在最上方(非最后一项),使用 scrollPosition 将某一个位置设置可见第一项,或者计算显示的 item 距离第一项距离,用 scrollBy 移动过去,常用使用下...原创 2018-02-17 19:36:51 · 2094 阅读 · 1 评论 -
关于ActivityManagerNative 类加载异常
在导入他人的工程后出现异常,The import android.app.ActivityManagerNative cannot be resolve;即android.app.ActivityManagerNative 异常解决方案: 工程下右键>>PropertiesJava Build Path 下的Libraries remove原创 2015-11-24 10:42:26 · 1181 阅读 · 0 评论