- 博客(20)
- 资源 (20)
- 收藏
- 关注
原创 Dagger2的化简学习总结
Dagger2是一款非常优秀的依赖注入框架,依然简单去讲,首先必须明确一个理念:依赖注入是实现控制反转的方式之一,所以先普及一下依赖注入和控制反转的两个基本概念: 控制反转:简单的说就是如果你需要创建(new),那么别自己手敲,把它交给三方框架去做。控制反转是面向对象编程的一种设计模式,目的就是降低代码的耦合性。 ...
2018-11-28 17:24:22 235
原创 Android MVP模式的化简深入理解
网上关于MVP的冗长教程已经很多了,自己结合所做的MVP项目尽量简洁,简单,大白话的方式记录心得,为了日后遗忘的差不多了能迅速把记忆抓起来。一图胜千言,先上图。图1是mvp的框架流程图: ...
2018-11-27 16:56:32 433
原创 ButterKnife 简单集成
ButterKnife,俗称黄油刀,是Android的一种View依赖注解框架。View注解框架的作用就是大量节省掉去写findViewById或者是点击操作之类的界面相关的处理代码。一般来说MVVM架构的项目,View注解会选用更为主流的databinding注解框架来配合,但是如果项目是MVP的架构,多会使用ButterKnife作为View的注解框架。集成黄油刀的步奏如下:...
2018-11-26 16:20:16 285
原创 Android 时间戳和 日期格式字符串 的转化
直接上封装好的函数,直接调用即可 /** * 时间戳转换成日期格式字符串 * @param seconds 精确到秒的字符串 * @return */ public static String timeStamp2Date(String seconds,String format) { if(seconds == null ...
2018-11-22 15:07:46 1656
原创 Android 小米推送(MiPush)的化简深入理解
小米推送(MiPush)是小米公司向开发者提供的消息推送服务,总的流程如官方文档所示: 由图可知,推送是双向的: 1.推送是可以由app的后台端发起,应用服务器的后台会先将消息传给小米的消息云服务器(MiPush Server),然后MIPush云服务器再把消息送达到app客户端。 2.推送是可以由app客户端发起,app Client先将消息发...
2018-11-22 10:29:27 17856
原创 Android 百度地图自定义地图覆盖物(Marker)
理论和高德地图一模一样,换个sdk而已,换汤不换药,详情可以参考上一篇高德地图https://blog.csdn.net/Crystal_xing/article/details/84314359,下面只给出核心代码: //自定义布局 View view = LayoutInflater.from(getContext()).inflate(R.layout.ma...
2018-11-21 13:52:53 2778
原创 Android 高德地图自定义地图覆盖物(Marker)
先上效果图,摄像头和摄像头上的预警事件红点就是一个自定义布局作为地图的marker的图标。 camera_red.png (素材图)官方提供的API参考手册:http://a.amap.com/lbs/static/unzip/Android_Map_Doc/index.html, maker图标设置如下截图所示 所谓自定义覆盖物,其实...
2018-11-21 11:38:52 3768 1
原创 Android SetTextColor
代码中设置字体颜色,以前的写法过时了,现在使用ContextCompat.getColor(context,R.color.red) holder.binding.txtState.setTextColor(ContextCompat.getColor(context,R.color.red)); ...
2018-11-20 15:58:35 445
转载 Android实现ProgressBar旋转菊花加载的动画
在一些常见到的加载中需要显示一个加载动画,如旋转的菊花这样的动画效果,开发中有两种方案,一种是直接让设计师给出一个gif图片,然后写入到布局,另外一种,使用Android动画,把一张静止的图片动起来,本例用后者实现。写一个xml布局,把ProgressBar放进去:<?xml version="1.0" encoding="utf-8"?><LinearLayout x...
2018-11-20 11:34:05 632
原创 Android Service保活(线程保活)
Android 系统对于内存管理,为了使系统有序稳定的运行,系统内部会自动分配,控制程序的内存使用。当系统觉得内存的资源非常有限的时候,为了保证一些优先级高的程序能运行,就会杀掉一些他认为不重要的程序或者服务来释放内存, 比如项目需求需要Service在后台实时监听网络连接状态,或者其他用Service执行的后台操作,为了保证Service一直运行不被系统释放掉,就需要用到Service保...
2018-11-19 13:34:07 3097 1
原创 Android 监听网络是否连接可用
两种方式:Retrofit的NetworkUtils,blankj的NetworkUtils。 1.在使用Retrofit2.0发http协议的时候,在发之前判断一下就行了 /** * 先判断网络连接状态和网络是否可用,放在回调那里好呢,还是放这里每次请求都去判断下网络是否可用好呢? * 如果放在请求前面太耗时了,如果放回掉提示的速度慢...
2018-11-19 10:30:32 1765
原创 Android Vlc播放h264编码的视频解决方案
项目总的设计是:摄像头采用的分别是思科,海康威视,宇视科技,大华等等的有名商家,摄像头产生的多路视频流经过Nvr处理后的h264格式视频,通过RTSP协议传输给前端播放。 原生提供的播放器支持的格式少的可怜,最省事功能也最强大的节操播放器本来是播放视频的首选,但是注意github已经写明的第二行:能播放什么格式的视频依赖的这三个并不支持h264, 所以选择只剩下解码格...
2018-11-14 14:49:40 2294
原创 Android UI线程和普通线程的交互
当应用启动就会创建一个主线程(UI线程),非UI线程不能修改界面或者重绘界面,UI操作只能在主线程中进行,当有耗时的操作要遵循新开线程处理,这就涉及到了子线程执行完毕或执行的过程中,和主线程交互的问题,常用的方法有如下几点1. Handler + Rxbus最简单的场景,子线程中Rxbus发送message,在UI线程的观察者监听中收到消息,重绘UI //主线程...
2018-11-13 16:20:49 410
原创 Android 视频编码
视频最基本的原理就和古代的动画一样,比如将一个小人的走路分解动作分别画在纸上,翻动起来就看到了一个人走路的样子,如果翻动了3每秒,那么3秒的时间就是动起来连续的时间(视频播放的时间),3秒钟的时间内翻动了30页纸,每张纸就是构成视频的每一个载体(一个图片就是一帧)。所以才有了对于视频来说最基本的概念:帧率,GOP,码率。 帧率(FPS):每秒钟要多少帧画面;...
2018-11-12 11:11:21 336
转载 Android 动态修改SeekBar滑块和进度条的颜色
方法一1. 需求:需要改变其默认颜色,样式2.滑竿样式seekbar.xml<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@an.
2018-11-08 17:54:10 2963
转载 SeekBar与MediaPlayer(生命周期)的seekTo()问题
> MediaPlayer的原理 Android;基于Stagefight的MediaPLayer框架的结构Android MediaPlayer 及 NativePlayer 之播放格式对比- https://blog.csdn.net/andyhuabing/article/details/40855955Android MediaPlayer的主要具体实现在OpenCore的Pla...
2018-11-07 17:06:27 977 1
转载 vlc for android 不能全屏,或者画面不能铺满的问题。
做视频开发的时候,肯定会遇到,小窗口播放,然后支持全屏播放。 我遇到的问题,有两个。一:小窗口视频有黑边。就是还是没充满。二:全屏画面也是铺不满,而且跟小窗口的画面大小是一样的。要解决这些问题,先介绍一下要用到的vlc的三个接口videoView1.getMediaPlayer().getVLCVout().setWindowSize(wsur, hour);//宽,高 ...
2018-11-06 15:48:26 4054
原创 Android GL_OUT_OF_MEMORY
E/VLC-std: ../../modules/video_output/opengl/vout_helper.c:1661: vout_display_opengl_Display: assertion "!"GL_OUT_OF_MEMORY"" failedA/libc: ../../modules/video_output/opengl/vout_helper.c:1661: vout...
2018-11-06 14:41:25 1794
转载 E/NdkMediaCodec: sf error code: -38或者-18的报错
在使用网上开源VLC视频播放器时,当调用stop去停止视频播放时,报出E/NdkMediaCodec: sf error code: -38这个错误。开始以为是正常的报错。但在切换页面时,程序被卡死(堵塞了一分钟左右吧)。所以找问题。最后发现在是在调用so文件里的方法nativestop时出现问题,而堵塞的。所以记录一下。最后只能找一下版本的开源VLC了。------------------...
2018-11-05 17:25:17 2727 2
Android-Notification(兼容8.0+以及8.0以下).zip
2019-11-20
Android批量申请权限.zip
2019-11-05
Android-FCM云消息集成Demo.zip
2019-11-01
Android软键盘返回键监听.zip
2019-10-22
Android 可拖拽移动的RecyclerView
2019-06-26
Android 伸缩布局
2019-06-24
PictureSelector集成Demo
2019-02-20
Android 拍照和相册选取+图片压缩功能
2019-01-02
Android 自定义侧边栏列表
2018-12-24
Android 悬浮Activity ( Dialog风格)
2018-12-20
Android 底部导航栏凸出点击
2018-12-20
Android 离线语音识别技术PocketSphinx的Demo
2018-12-11
XRefreshView+MultiTypeAdapter的强大列表
2018-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人