- 博客(42)
- 资源 (3)
- 收藏
- 关注
原创 Emoji表情过滤-手机键盘emoji表情完全过滤
这可是我按照emoji表情表格,一个一个找来的,希望能帮到你,累死我了。 private Pattern emoji = Pattern.compile( "[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]|" + "[\uD83E\uDD10-\uD83E\uDD2f]|" + "[\uD83E\uDD1.
2021-09-01 10:22:51
644
原创 流式布局--可展开、限制展示的行数
之前为了图方便,用过很多其他人写的流式布局,也基本满足了当时的要求。但是这次的要求有点多:可展开和收缩,限制行数、最初展示的最多为两行。接到需求第一步,网上找一个满足功能的FlowLayout,确实找到了几个但是都存在不一样的问题。以下就说一下遇到的问题,不知道你遇到过没有:1.因为每个Item的TextView为wrap_content,所以当文本本身特别长的时候就会出现问题,尤其是当TextView设置了圆角背景的时候,你会发现TextView的右侧圆弧边没有了,因为子控件的实际宽度大于他的父控件。.
2021-08-30 16:21:07
921
原创 Java基础--运算符基础
> 算术运算符: +,-,*,/,%,++,--> 关系运算符:>,<,>=,<=,==,!=> 布尔逻辑运算符:!,&,|,^,&&,||> 位运算符:&,|,^,~ , >>,<<,>>>> 赋值运算符:=;扩展赋值运算符:+=,-=,*=,/=> 字符串连接符:+1.算术运算符:即加、减、乘、除、%(取余也叫取模),++(自增),--(自减) int a
2020-09-08 16:59:57
172
原创 Java基础--引用数据类型
引用数据类型包括:枚举,数组,类1.枚举类型enum Season{ Sping,Summer,Autumn,Winter}public class Test{ public static void main(String[] args){ Season season = Season.Spring; }}2.数组:一维数组的声明:int a[]; double b[];Java 语言中声明数组时不能指定其长度,例如:int a[5]; 这样是.
2020-09-08 15:20:37
225
原创 Android视频录制之NV21和NV12
从Camera.PreviewCallback接口回调方法onPreviewFrame(byte[] data, Camera camera)回调的data数据,为NV21图像数据,而Android手机识别的是NV12图像数据,所以需要将NV21转化为NV12图像数据。NV21图像数据包括三块区域数据,分别为Y、V、U三块,一个XY像素的图片,他的NV21数据大小为 **byte[XY3/2]**,其中byte[XY]为Y区域,剩下的1/2U和V区域各占1/4;“Y”表示明亮度,“U”和“V”则是色度、浓.
2020-09-03 13:54:13
4547
原创 Android自定义照相机录制视频
Android端视频的录制:1.自定义Camera和MediaRecorder录制视频和拍摄照片,基本功能都能实现,但是也存在一定的问题。 a.后置摄像头拍摄完成后照片自动旋转90度或者270度 b.如果涉及到从图库中选择照片,有的手机也会涉及到照片自动旋转的问题(和Camera以及MediaRecorder无关,和照片本身的角度有关) c.前置摄像头拍摄的和视频照片和你拍摄时看到的照片和视频成镜面对称。2.利用Camera.PreviewCallback接口的回调方法拿到视频元数据--一张张N
2020-09-02 17:16:15
1289
原创 利用ffmpeg处理视频并提取缩略图和视频详情
为了满足视频的编辑以及视频基本信息的获取,需要在你的gradle中引入: implementation 'com.github.microshow:RxFFmpeg:2.2.0' implementation 'com.yyl.ffmpeg:ffmpeg_cmd:4.1.3'以及在你的app gradle文件中的defaultConfig{}下添加: ndk { abiFilters "armeabi-v7a", "arm64-v8a" }.
2020-09-02 16:27:49
2031
原创 Java中垃圾回收机制和终结处理
1.垃圾回收器只知道释放那些由new分配的内存2.finalize工作原理,一旦垃圾回收机制准备好释放对象占用的存储空间,将首先调用finalize方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。3.垃圾回收器只与内存相关,不论对象是如何创建的,垃圾回收器都会释放对象占据的所有内存4.finalize的使用,是由于内存分配时采用了本地方法(native方法),当本地方法中可...
2020-04-15 22:51:14
186
原创 第一章 Kotlin开篇第一讲
Kotlin的语言特点1.简洁,实现相同的功能模块,Kotin代码量更少2.安全,Kotlin和Java一样是静态类型语言,支持非空类型3.类型推导,Kotlin编译器根据上下环境推导出它的数据类型4.支持函数编程,代码变得简洁,增强线程安全和比便于测试5.支持面向对象6.和Java之间有良好的互操作性7.免费开源Kotlin应用程序运行过程1.Java程序运行过程,Java编译...
2020-04-15 22:40:54
270
原创 Android 分发机制趣谈
Android的分发机制其实就是一个很简单的“踢馆机制”,就例如一个声名远播的武术馆,有人来踢馆,但是作为馆主的Activity就想你一个毫无声明的小喽喽上来就找我,我不是很没面子,那就直接dispatch我的长老ViewGroup 处理,但是ViewGroup想我也是有身份的人,你要是有名气的高手我可以onToutch你,但是你就是一个小喽喽,先安排小弟view试试水,所以直接又dispatch...
2020-04-13 08:12:00
141
原创 最简单的仿QQ滑动删除控件--解决垂直方向的滑动冲突
当该控件作为ListView或者RecyclerView等可垂直方向滑动的控件时,控件会发生滑动冲突,造成很大影响,最后经过多方求证查找,找到以下解决方案:原博客地址:https://mp.youkuaiyun.com/postedit/81458429已经对博客做了修改,主要是添加了 @Override public boolean dispatchTouchEvent(MotionEvent...
2018-09-27 18:06:16
623
原创 自定义控件--最简单九宫格解锁
关于九宫格解锁,我看了不少博客,但是都感觉很复杂,可能我的功夫还不到,所以很多东西我不了解,但是我还是打算写一个自己的九宫格。我相信我的九宫格大家都能很快的理解,当然如果需要实现更复杂的功能,需要大家自己接着往深了挖掘。代码文件 NineGroupView:为九宫格空间组ToggleView:九宫格中的子View,也就是我们看到的圆形按钮,我自己定义的Togg...
2018-08-09 10:58:49
2194
1
原创 最简单的仿QQ滑动删除控件
滑动控件的编写,首先你需要清楚地了解你需要设计的这个控件具体实现怎样功能,控件是如何操作的。既然是模仿QQ滑动删除组件,那么你最好在动手写代码之前,先反复操作一下QQ中的滑动组件并对其做清晰的认知。我来描述一下我是如何分析的:1、这是一个组控件 所以我们需要继承ViewGroup基类,并且需要实现 onMeasure、onLayout方法。2、这是一个需要实现滑动效果的控...
2018-08-06 18:30:33
617
原创 MediaRecorder中遇到的坑
对于刚刚接触MediaRecorder的小伙伴,其实有很多很苦恼的问题,例如下面的代码块,你就可能出错,而且这种错误不容易意识到。IllegalStateException,prepare崩溃
2017-12-07 11:16:48
6426
原创 C++编译后报Error spawning 'rc.exe'.错误
问题描述: 当前电脑一般为64位,但是安装 Visual Studio 2008软件时,默认情况忽略一些有关64位的文件的安装,仅仅安装了32位的文件,所以文件编译会报错。 解决方法: 重新运行安装文件 选择 Change or Remove Visual Studio 2008 然后 点击 Next 之后 选择 Add or Remove Features 进入下
2017-11-15 17:42:32
1599
原创 NDK编译环境搭建以及牛刀小试
NDK编译环境搭建NDK全称Native Development Kit,要想开发NDK,首先需要下载NDK包。这里提供两种方式获取NDK开发包: 第一种:链接:http://pan.baidu.com/s/1gfgsBOf 密码:ngd5 第二种:直接通过AndroidStudio下载,推荐使用这种。第一步 :File->setting第二步:配置环境变量配置了这么多次环境变量,应该不用知道了
2017-11-10 16:45:38
780
原创 Unable to add window -- token android.os.BinderProxy@bf4921f is not valid
这种异常通常出现在:显示弹窗的时候,弹窗所依赖的上下文Activity已经被销毁了。当然一般情况下,这种情况很少出现,但是当弹窗是在子线程和Handler通信过程创建时,就很容易出现这种问题。
2017-11-01 15:34:58
610
原创 setdatasource failed异常
在利用MediaPlayer播放视频或者音频时,会出现报异常setDataSource failed。
2017-09-19 10:02:37
5432
原创 利用贝塞尔曲线实现动画
贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。你可以认为他就是我们数学上认识的各种曲线。利用贝塞尔曲线来实现动画,就是利用贝塞尔曲线来作为动画运行的轨迹。 实现贝塞尔曲线少不了要用到Path类,我们认识Path类,主要从moveTo、lineTo、quadTo三个方法开始,当然Path肯定不止这三个主要方法,但是一般我们只需要这三个方法就
2017-09-08 10:16:15
2064
原创 自定义滑动控件简例
一、Scroller的使用为了更好的了解一下滑动控件,我们需要先了解一下Scroller的作用.Scroller可以说是View的辅助类,在使用它之前,用户需要通过startScroll的参数,即起始坐标和(x,y)轴上需要滚动的距离,可以理解为一条用点表达的有向线段,调用方法为:mScroller.startScroll(x0,y0,x1,y1)。由于Scroller封装了时间,要滚动的目标x轴
2017-09-01 11:50:38
376
原创 如何用自己电脑为Android搭建一个局域网服务器
当你想要模拟网络数据请求下载文件时,不管是图片、音频或者视频的下载或者上传,完全可以自己搭建一个服务器。 首先你要有一个局域网,wifi环境。 你的手机和你的笔记本电脑都接入这个wifi 如果你的是台式机的话,有线连接接入的路由器就是你手机连接的wifi发射器。
2017-08-17 18:39:12
2912
原创 Android中巧妙运用反射和注解,同时控制所有同类控件
讲到反射和注解我也是一知半解,但是俗话说得好,熟能生巧,在我多番应用和实践中掌握了一些技巧和大家分享一下。 比如大家需要实现一下同时控制当前Activity所有EditText的可编辑属性或者是控制所有的Button的可点击属性等等。就好像大家用QQ点击编辑按钮之后,才可以修改信息,不点击就只能看个人信息,而不能修改一样的情况。 EditText的可编辑属性可以通过xml文件中edita
2017-08-10 14:51:11
368
原创 自己学着写一个BindView来减少findViewById的应用
大家看到下面代码知道BindView是我们自己写的注解,但是他还有注解,而这样的注解我们叫做元注解,所谓元注解解释负责注解其他注解的注解
2017-07-28 16:18:21
1171
原创 Kotlin For Android:如何创建一个Kotlin项目
对于Kotlin 成为了 Android 的官方语言,让很多想我一样的菜鸟感到恐慌。对Android现有的东西还是半瓶子水的我,如何能适应这个新东西。
2017-05-18 17:07:11
1448
原创 一个使用RecyclerView写的树结构效果:TreeRecyclerView
一个使用RecyclerView写的树结构效果:TreeRecyclerView
2017-05-10 15:41:33
3777
转载 异常收集(1)
报错:Error running app: This version of Android Studio is incompatible with the Gradle Plugin used. Try disabling Instant Run (or updating either the IDE or the Gradle plugin to the latest version)解决办法:
2017-05-04 08:24:20
345
原创 PullToRefreshExpandableListView在Fragment中应用
ExpandableListView在Fragment中实现下拉刷新
2017-04-14 19:05:58
421
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人