自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 从 byte 数组中查找匹配内容的索引

从 byte 数组中找到匹配内容的索引

2022-10-11 10:37:51 1535 1

原创 Canvas 动态绘制三次贝塞尔曲线

Canvas 动态绘制三次贝塞尔曲线想让贝塞尔曲线可以动态的绘制出来,如何才能做到呢?详细的贝塞尔原理以及分析请参考这篇文章,并且该文章也实现了二次贝塞尔曲线的动态绘制,我只是照猫画虎,将三次贝塞尔曲线实现而已。http://www.imooc.com/article/22628原理就是通过贝塞尔曲线的方程,每次都绘制 t 时刻的点,随着时间的增加,绘制的点也越来越接近终点,所以看起来就是动态绘制了曲线。函数如下所示:// ctx 画布上下文// start 贝塞尔曲线起点// end 贝

2022-01-17 19:22:12 781

原创 Android 悬浮窗不拦截点击事件

Android 悬浮窗不拦截点击事件悬浮窗基本设置代码如下:windowManager = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);layoutParams = new WindowManager.LayoutParams();if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { layoutParams.type = Win

2021-10-15 10:47:35 5932

原创 Android 选取 Bitmap 上点的控件布局

创建一个放大选点的布局在工作中,遇到了一个需求,需要选中图片上的某个位置,获得对应图像的坐标,如果直接用手去触摸,误差太大,我们想到的一个方式时,触摸图片后,用另外一个 ImageView 显示触摸点附近的一个范围的局部放大图像,随着手指的移动,局部放大图像也会跟着移动,为了防止局部图像移动太快,设定局部图像移动的距离是手指移动的十分之一,这样可以更好的控制移动距离。···public class ImageDotLayout extends FrameLayout {//放图片的 imageVie

2021-05-20 13:59:37 197

原创 Android 播放本地 ts 格式视频

Android 播放本地 ts 格式视频上一篇文件讲述了如何录制 ts 格式的视频,那么如何播放录好的 ts 格式视频呢。我一开始使用 MediaPlayer + SurfaceView 组合实现,我在代码中加了一个 mp4 格式的过滤,导致我播放时没有播放成功,误以为 MediaPlayer 不支持 ts 格式视频,看许多文档说明,也都是说 MediaPlayer 支持的格式为 mp4,3gp,mkv,webm,让我更确信了这点。搜索 Google 文档,官方文档说 ExoPlayer 这个播放器功

2020-07-14 18:30:45 8040

原创 使用 MediaRecorder实现分段录制视频

使用 MediaRecorder实现分段录制视频使用 MediaCodec 和 MediaMuxer 也可以实现分段录制视频,而也是一直这样做,但是遇到一个问题,就是 MediaMuxer 的 OutputFormat 支持 4 种格式,分别是 MUXER_OUTPUT_MPEG_4、MUXER_OUTPUT_WEBM、MUXER_OUTPUT_3GPP、MUXER_OUTPUT_HEIF,一般经常用的也就是 MUXER_OUTPUT_MPEG_4,录制 .mp4 格式的文件。但是在录制时,有一个情况,

2020-07-09 17:58:46 3040 2

原创 Bugly热更新 so 文件

Bugly 热更新 so 文件Bugly 热更新是使用 tinker 实现的,热更新 Java 文件,资源布局文件非常简单,但是更新 so 文件就会有一些问题了。 /** * 如果想更新so,可以将System.loadLibrary替换成Beta.loadLibrary */ static { Beta.loadLibrary("native-lib"); }官方 Demo 中这样描述,更新 so 文件的方法,这个 so 文件是 cpp 文件生成

2020-07-01 17:57:23 395

原创 SL4A apk 编译生成

SL4A 软件编译前言:SL4A(即 Scripting Layer for Android)是一个 Android 脚本解释环境,可用于自动化测试,可是我根据书本的自动化步骤操作时,遇到了不少坑,下面是填坑的系列过程,如果大家恰好工作中也遇到了 SL4A 的相关使用,希望我的填坑过程可以帮助大家避坑,节省时间。前往 SL4A 的官网网站SL4A 书本给的官网地址为 http://code....

2019-07-09 15:44:53 1819

原创 MonkeyRunner 配置

MonkeyRunner 配置前言:在公司中,根据需要学习了一点自动化相关的知识,其中一个工具是 MonkeyRunner,然而根据书中的操作步骤有些问题,估计是书中的版本比较老的原因吧。找到 MonkeyRunner 文件该文件在 【E:\AndroidSDK\tools\bin】路径下,是一个 monkeyrunner.bat,window 批处理文件。编写一个自动化测试脚本程序# ...

2019-07-08 20:03:35 405

原创 Android Studio 类文件乱码变成 xml 格式文件

Android Studio 类文件乱码变成 xml 格式文件事情发生的很莫名其妙,Android Studio 好好的,突然一些 java 类文件变成了 xml 格式的乱码,然而用 notepad++ 打开错误的 java 类文件发现是没有问题的,说明是 Android Studio 出了问题,搜索了一番,终于找到了解决答案,把 Android Studio 的配置初始化就行了,那么怎么初始化...

2019-07-08 19:44:50 3236 4

原创 第 2 章 IPC 机制

2.4 Android 中的 IPC 方式前言:Android 中,进程通信的方式有很多种,那么都有哪些呢?使用 Bundle四大组件中的三大组件(Activity、Service、Receiver)都是支持在 Intent 中传递 Bundle 数据的,由于 Bundle 实现了 Parcelable 接口,所以它可以方便地在不同进程间传输。使用文件共享两个进程通过读/写同一个文件来交...

2019-07-07 14:20:56 136

原创 Android Studio git pull failed

Android Studio git pull failed使用 Android Studio git 提交代码时报错,错误信息如下:Git Pull Failed Invocation failed Unexpected Response from Server: Unauthorized java.lang.RuntimeException: Invocation failed ...

2019-06-27 17:56:53 2182

原创 第 2 章 IPC 机制

2.2 IPC 基础概念 Binder前言:Binder 真的很复杂,我现在也没有十分的理解,不过,我觉得随着编程时间的增加,会慢慢的理解的,就像刚学会编程,去看设计模式,是看不太懂的,随着开发时间的增加,开发中遇到一些需求改变因此修改代码的情况,发现修改起代码来会比较繁琐,这个时候,接触一些设计就会发现,会品尝到设计模式的美味,也就进而理解设计模式了。Binder 简单介绍直观来说,Bin...

2019-06-20 17:43:57 159

原创 第 2 章 IPC 机制

2.2 IPC 基础概念 - Serializable 接口、Parcelable 接口前言:Serializable 接口 和 Parcelable 接口可以完成对象的序列化过程,当我们需要通过 Intent 和 Binder 传输数据时就需要使用 Parcelable 或者 Serializable。还有的时候我们需要把对象持久化到存储设备上或者通过网络传输到其他客户端,这个时候也需要使用 ...

2019-06-19 15:25:36 127

原创 第 2 章 IPC 机制

2.1 IPC 机制前言:IPC 是 Inter-Process Communication 的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。Android 中的进程通信方式有哪些呢,Bundle、文件共享、基于 Binder 的 AIDL 和 Messenger、ContentProvider 和 Socket 等进程间通信方式,Android 最有特色的进程间通信...

2019-06-18 11:02:36 145

原创 第 1 章 Activity 的启动模式

1.2 Activity 的启动模式前言:Activity 的启动模式在面试中也是经常被问到的,那么每个模式具体是什么样子,有没有记混淆了呢?正文默认情况下,当我们多次启动同一个 Activity 时,系统会创建多个实例并把它们一一放入任务栈中,当我们点击 back 键时,这些 Activity 会一一回退,直到栈空为止,任务栈就是一种“后进先出”的栈结构。standard:标准模式,系...

2019-06-17 16:40:20 128

原创 第 1 章 Activity 生命周期

第 1 章 Activity 生命周期和启动模式前言:最近面试了几家公司,包括几家一流的互联网公司,发现一流互联网技术面试与我之前的面试还是有一些差异,他们非常注重对 Android 源码的理解和掌握,而且问的问题也很基础。之前的面试都会问你知道某个东西吗,简述一下如何使用基本就算是合格,而一流的互联网技术面试要求你能够阐述出源码是如何实现的,讲述流程,逻辑等,也希望广大开发者注重对源码的理解和...

2019-06-17 15:45:11 215

原创 ListView、GridView 获取选中的 item 的 bean 对象

ListView、GridView 获取选中的 item 的 bean 对象我们如何可以直接使用 ListView 和 GridView 对象获取选中的 item 对象呢。GridView 给我们提供了 mGridView.getCheckedItemPosition(); 方法,该方法可以从名字中看出方法功能是获取选中 item 的 position,但是往往会返回 -1,这是为什么呢,我们...

2018-11-13 13:33:39 585

原创 使用 RecyclerView 实现通讯录效果

使用 RecyclerView 实现通讯录效果先附上效果图:如图效果所示,实现某个字母下面展示以该字母开头的产品。看界面效果,基本可以肯定,主 View 应该是 RecyclerView 或者 ListView,需要显示出两种布局,字母的布局,产品的布局,我是使用 RecyclerView 实现的,简单记录一下我的思路。其中一种看起来可以实现的方法是在 Adapter 中设置两个 Vie...

2018-10-16 17:48:15 3225

原创 自定义 Dialog 显示问题,只因为去掉了一层布局,宽度就变得很窄了

在项目中,使用自定义 Dialog,遇到了一个比较怪异的现象,我没有百度到原因。项目中使用自定义 Dialog,在 xml 布局文件中定义了一个 layout。<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas....

2018-08-20 16:04:26 1675 2

原创 我理解的 Android MVP 模式

之前一直使用 MVC 模式开发 Android 应用,而 MVP 模式也出现了好久,可能之前还是太菜了吧,看网上博客,Google 官方的例子,总是不懂,不过最近又开始看,多少有了些理解,写出来与大家分享一下。一开始的 MVC 模式,Activity 其实承担了 V 和 C 的职责。负责 View 相关的绘制以及加载功能。我们也会在 Activity 中直接做一些数据加载相关的工作,最简单的,...

2018-08-09 17:08:22 219

原创 ListView 加载动态改变的 item

ListView 加载不同的 item正常情况下,ListView 是可以加载不同的 item,因为 ListView 的 BaseAdapter 中有 getItemType 方法,可以重写该方法,在 getView 中,通过不同的 itemType 加载不同的 ViewHolder。然而,我接受到了一个需求,虽然我不认为该需求是一个合理的需求,但是还是要去实现。需求大致如下,根据后...

2018-08-02 10:02:26 794

原创 Dialog 或者 DialogFragment 使用 RecycleView 时,RecycleView 不显示数据

需求环境: 点击按钮,弹出 Dialog,然后 Dialog 的布局时一个RecycleView,列表显示一些 item 信息。 问题状况: List 数据源确实有了信息改变,但是 Adapter 确没有执行 onCreateViewHolder(); onBindViewHolder(); 回调方法,数据改变后,界面没有显示。 问题解决: 把代码在 Activity 中实现,发现是有数据

2018-04-13 12:36:46 5205 1

原创 HorizontalScrollView将子View布局居中

HorizontalScrollView 只能拥有一个子View,所以,使用HorizontalScrollView 会配合布局使用,通常使用LinearLayout,然后LinearLayout内置多个子View。我在使用过程中,如果使用默认情况,会出现添加的布局从左到右挨个排列。 如果设置LinearLayout的 android:layout_gravity=”center_hori...

2018-03-16 11:30:47 3063

原创 AutoCompleteTextView使用ArrayAdapter

AutoCompleteTextView使用ArrayAdapter,数据源改变后,调用mArrayAdapter.notifyDataSetChanged无反应AutoCompleteTextView 使用ArrayAdapter时,当修改了数据源mList时,调用mArrayAdapter.notifyDataSetChanged()时,会发现界面并没有更新。而mList确实发生了变化...

2018-03-02 10:42:41 610

原创 OpenCV for Android 设置预览界面尺寸

OpenCV for Android 设置预览界面尺寸我的Android项目中用到了opencv的人脸识别,所以把opencv的部分内容集成到自己项目中,用JavaCameraView这个类来预览摄像头捕捉到的内容,问题出现了,我的JavaCameraView这个控件在布局中设置的尺寸很大,但是,却只在中间一个比较小的区域有预览画面,四周为黑色填充,我想让它全屏显示,或者接近全屏显示。经过...

2017-10-16 14:28:31 3287 4

空空如也

空空如也

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

TA关注的人

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