Android
文章平均质量分 62
sszpf
这个作者很懒,什么都没留下…
展开
-
Android IOS风格 MultiToggleButton(多状态选择控件) SeekBar
MultiToggleButton风格效果如下:SeekBar风格效果如下:Git项目地址:github欢迎大家扩充这个库原创 2018-05-25 11:24:05 · 515 阅读 · 0 评论 -
Android SystemUI引用RenderScript库
需要在SystemUI中使用高斯模糊效果,android系统中framework/base/rs库有次功能,应用层使用这个库对应的java包名称是android.support.v8.renderscript。需要在systemui中调用这个库,就得修改systemui下的android.mk。android.mk修改后如下:LOCAL_PATH:= $(call my-dir)i...原创 2018-05-25 09:44:05 · 790 阅读 · 0 评论 -
NotificationListenerService是如何启动的?
前言 简单的继承NotificationListenerService这个抽象类,就可以实现接收/移除系统通知的功能,但是在使用的时候,不知道有哪位同学有过这样的疑惑?这个服务是怎么启动的。看下这个类的源码就会发现,它继承了Service,但是在使用的时候,没有使用startService或bindService来启动,它是怎么启动的呢?怎么用简单说下怎么用,继承这个抽象类,重写on...原创 2018-03-23 16:28:43 · 4005 阅读 · 0 评论 -
android录屏直播:VLC通过rtsp协议播放android录屏实时视频(Java实现)
首先说下为什么要做这样一个东西 在上家公司的时候,作为客户端开发,一个月要给领导演示异常app的开发成果,当时用的策略是用录屏类软件,录制成mp4,然后通过投影播放mp4文件,来给领导看。这样做带来的问题是,要提前准备mp4需要时间,领导想要看除了mp4外的内容时,体验不好。自己对流媒体知识有一些了解,所以就想做一个直播android屏幕的app,这就是想做这样一个东西的原因。项...原创 2018-03-16 14:13:53 · 12019 阅读 · 28 评论 -
android通过MediaProjectionManager录屏关联MediaCodec获取h264数据
android 5.0增加了MediaProjectionManager,通过它我们可以简单的完成录屏的需求。本文会简单介绍MediaProjectionManager的使用流程,通过MediaCodec获取到的264数据MediaProjectionManager的用法1.获取MediaProjectionManager实例 通过调用getSystemService方法获取MediaPr...原创 2018-03-08 11:09:23 · 13939 阅读 · 8 评论 -
android 圆形relativelayout
需求描述:圆形容器,内部有一个lable解决方案:通过设置relativelayout的background来设置其shape,达到目的,代码如下:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" andr...原创 2018-02-08 14:10:24 · 1361 阅读 · 0 评论 -
android ImageView 圆角控件 设置上下左右某几个为圆角
需求描述:ImageView的上面两个角为圆角,下面两个角不变解决方案:重写ImageView控件,在onDraw方法中,设置Path来达到目的控件代码如下:public class RoundRectImageView extends ImageView { /*左上角xy半径,右上角,右下角,左下角*/ private float[] rids = {10.0f, 10.0f,...原创 2018-02-08 14:06:10 · 1589 阅读 · 2 评论 -
android HorizontalScrollView嵌套RecyclerView横向不能滑动问题
开发场景:在 HorizontalScrollView内嵌套RecyclerView和其他内容,要求其他控件和RecyclerView一起横向滑动,而RecyclerView自身滑动事件不响应。问题分析:1.HorizontalScrollView内嵌套RecyclerView,发现HorizontalScrollView不能横向滑动; 2.RecyclerView于...原创 2018-02-08 13:55:28 · 5937 阅读 · 0 评论 -
android recyclerView 设置item间的间距
使用场景:recyclerview要通过代码设置item间的场景解决方案:1.重写RecyclerView.ItemDecoration方法,代码如下:public class SpaceItemDecoration extends RecyclerView.ItemDecoration{ private int leftRight; private int topBottom;...原创 2018-02-08 14:01:02 · 19030 阅读 · 4 评论 -
ndk_stack打印native层崩溃堆栈
ndk-stack定位native层崩溃堆栈原创 2016-04-15 13:38:57 · 1814 阅读 · 0 评论 -
android编码h264(二):MediaCodec 硬编码 h264(硬编码)
本篇文章记录一下,android调用mediacodec编码camera回掉的YUV数据为h264的方法。 由于公司需要,软编码(X264)由于手机性能的瓶颈,已不能满足要求,所以决定使用硬编码。其实硬编码最早用过MediaRecord,但是不能直接得到h264数据,得先编成MP4,再从MP4里把H264的NALU取出来,感觉太绕了,所以当时抛弃了MediaRecord,选择了x原创 2015-12-10 23:16:52 · 21630 阅读 · 19 评论 -
android编码h264(一):使用x264编码yuv为h264数据的例子(软编码)
先说下简单流程: 1.camera回调nv21 yuv; 2.nv21转yuv420; 3.x264编码h264,回调回java层; 4.写文件,生成.h264文件; 5.使用vlc等播放器播放。android java层的代码比较简单,简单说下:这个demo启动会,surfaceView会显示Camera拍摄到的数据,Activity需要继承Surfa原创 2015-12-11 16:56:01 · 6916 阅读 · 9 评论 -
关于 targetSdkVersion=23 底层动态库报错: has text relocations
从 API 23 开始,共享对象将不得包含文本重定位。也就是说,代码必须按原样加载,不得对其进行修改。问题就是:当android studio的targetSdkVersion = 23时,之前能用的动态库在代用的时候会报错,错误信息包含has text relocations ....官方给出的解决方案:wiki.gentoo.org/wiki/Hardened/Textrels_Gui原创 2017-03-10 14:06:53 · 3117 阅读 · 0 评论 -
MediaCodec 编码H264 编码一帧后dequeueOutputBuffer为-1的问题
在用android MediaCodec编码h264的时候,会遇到,dequeueOutputBuffer在成功获取到config帧(sps pps)及第一个I帧后,dequeueOutputBuffer然后结果一直为-1的情况,在我用的三星note3及小米3都是这样的,解决方案如下:关键在下面这个函数的第四个参数上,就是时间戳,这个参数一定要填写,可以类似的这么简单的算一下:原创 2015-12-01 17:50:53 · 14905 阅读 · 4 评论 -
NV21 to NV12(YUV420SP)
setPreviewFormat(ImageFormat.NV21)NV21 颜色空间排列 :YYYYYYYY VUVU在用MediaCodec编码的时候,如果设置颜色空间为YUV420SP,那么则需要转换一下,YUV420SP颜色排列顺序为:YYYYYYY UVUV多说一下,YUV420 是于NV12对应的,但是5.0一下的安卓手机支持这个预览颜色的不多则需要将VU顺序进行转原创 2015-12-02 12:11:15 · 15333 阅读 · 1 评论 -
android录制小视频mp4(不依赖系统API)解决android API碎片化兼容性问题
先说下,为什么不适用简单便捷的系统API去录制mp4呢。 使用android系统api常用的方案有,MediaRecoder,或者MediaCodec和MediaMuxer来完成,但是这样做的时候,大家可能会发信,由于android系统层各个厂商的高度定制,很难保证这些api可以稳定的工作。从而要写很多适配特殊设备的代码,即便这样,还是难以保证稳定性,经常会遇见某款手机调用api...原创 2019-08-16 15:02:35 · 493 阅读 · 0 评论