自定义博客皮肤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)
  • 问答 (3)
  • 收藏
  • 关注

原创 列表吸顶分组之按首字母分组国家选区号

列表粘性分组之按首字母分组国家选区号Android原生版本直接先看UI图,效果如下本来看起来也不难,我就想着上面常用区号那块不动,下面的列表滑动就行,但IOS说他滑动的时候上面也滑上去了,好吧,这也行;但最终效果做出来后,IOS滑动后会有按照国家名称首字母进行粘性分组,好吧,为了提升自己,我也决定做得跟IOS一样,不说废话了,直接上代码引入流布局控件//流布局api 'com.google.android:flexbox:1.0.0'布局<?xml version="1.0" en

2024-03-06 11:59:13 979

原创 android接入微信API相关细节

想要接入微信,如接入分享微信功能、跳转小程序功能等;首先需要到申请AppId,如何申请在开放平台上的流程很清楚,就不赘述了但有个细节就是应用包名签名,这个应用包名签名记得是以app有正式签名文件条件下获取的,,再用签名生成工具输入包名即可获得应用签名。

2022-11-28 15:57:49 1490 1

原创 Android私有目录文件移动到公有目录

背景:今天早上做了一个拍照后就上传到后台的需求,这个需求还是蛮好处理的,不就是拍照嘛,信誓旦旦说等会就打包出来,结果引发了思考(1、如何将文件复制到公有目录;2、如何将图片刷新到图库),搞到了下午才打包。

2022-10-18 17:10:30 597

原创 Android录制音频并使用ijkplayer播放

使用MediaRecorde和AudioRecorder录制音频并用IjkPlayer播放

2022-09-22 13:51:57 1426

原创 关于Android文件的那些事

关于Android文件的那些事前言1、获取文件夹、文件和Uri1.1、Android7.0前1.2、Android7.0后1.3、Android Q后1.3.1、获取Uri2、创建文件夹2.1、创建文件夹和其子目录2.2、创建单一文件夹3、获取文件输入输出流3.1、根据Uri获取输入输出流3.2、根据File获取输入输出流4、FileProvider配置5、copy文件6、根据路径路径以合适的程序打开文件7、根据Uri得到文件路径前言在了解Android文件相关知识前,先来了解下Android文件相关常

2022-05-10 17:46:33 423

原创 关于Android打电话那些事

关于Android打电话那些事1、问如何使用Android打电话2、问如何使用固定sim卡打电话3、问如何获取sim1和sim2的信息4、问如何监听拨打电话状态5、问如何得到拨打电话的广播不想废话连篇,直接抛出问题并给出答案1、问如何使用Android打电话val intent = Intent(Intent.ACTION_CALL)val data = Uri.parse("tel:$calledNumber")intent.data = datastartActivity(intent)

2022-05-07 18:04:30 569

原创 android webrtc学习五(webrtc视频数据传递和切换摄像头问题处理)

android webrtc学习五(webrtc视频数据传递和切换摄像头问题处理)Android webrtc摄像头流程分析1、打开摄像头2、获取流数据摄像头切换问题场景:在使用华为手机(忘了是啥型号)使用webrtc视频通话过程中,切换前后置摄像头的时候出现了问题;前置摄像头只有一个,但后置摄像头存在多个,在使用Camera2API情况下切换到后置摄像头之后想要再切换前置摄像头却每次切换都还是后置,要切好几次才能再回到前置摄像头,表面看起来只是焦距有所变化;想要处理这个问题,先从整个摄像头流程出发An

2021-05-12 16:31:28 1700

原创 android webrtc学习四(更改webrtc包名和.so文件名)

android webrtc学习四(更改webrtc包名和.so文件名)更改webrtc包名和.so文件名称在ubuntu中安装vs修改包名和相关引用更改.so文件名称打包注意更改webrtc包名和.so文件名称在webrtc实际应用中,可能有的项目以前原有的模块或组件已经有了webrtc的功能,并且这些模块或组件的功能因为某些原因无法再去更改,那么只能保留org.webrtc的包名和保留libjingle_peerconnection_so.so的.so文件名称;那么在新的组件或者模块中使用新的web

2020-11-27 11:20:49 861

原创 最近遇到的小坑

最近遇到的小坑1、使用DecorView截图WebView不全、白屏、闪屏问题项目场景:问题描述:原因分析:解决方案:2、登录成功后点击桌面app图标又进登录页面问题问题描述:原因分析:解决方案:1、使用DecorView截图WebView不全、白屏、闪屏问题项目场景:一个页面,里面只有一个WebView壳;主要实现android和webview交互,点击前端页面中的按钮,js调用Android的截图功能,并再通过跟前端交互的方法,Android调用js方法,将bitmap转成base64传给H5

2020-09-11 12:06:47 909

原创 Flutter忽略Https、WSS证书验证

Flutter忽略Https、WSS证书验证使用Dio单独忽略Https证书验证全局忽略Https证书验证使用Dio单独忽略Https证书验证Dio _dio = Dio();_dio.options.baseUrl = UrlConfig.BASE_URL; _dio.options.connectTimeout = 5000; _dio.options.receiveTimeout = 3000; //忽略Https校验 (_dio.httpClientAdapte

2020-08-14 11:24:01 4046

原创 android webrtc学习三(开启ffmpeg解码和openH264编码)

相信大家伙在看其他开启ffmpeg或者开启webrtcH264软解的相关文档当中,基本都会看到这句话:打开third_party/ffmpeg/ffmpeg_generated.gni文件,把包含H264的开关打开基本上所有文章说了这句话之后就没然后了,开关打开怎么开也没有说明,甚至没有例子,对初学者非常不友好。在上一篇文章android webrtc学习二当中已经修改了硬编解码的白名单;而对于软编解码,android webrtc编码采用openh264,解码则使用ffmpeg,这两块的代码都在

2020-07-17 11:11:04 4013 11

原创 android webrtc学习 二(H264硬解码适配基于M79版本)

android webrtc学习 二(H264硬解码适配)场景场景Android webrtc个人觉得不太友好,对H264的支持实在是太低,不过这也正好触发我们不断的去学习和动手去解决遇到的问题;我使用的webrtc版本是m79这个版本,一开始是用master分支的,但考虑到master可能很多大神在修改,可能会有不稳定的情况,所以就选择了m79版本,这个在此刻应该算是最新的稳定版本了吧!在使用webrtc开发音视频通话客户端过程当中,发现当IOS使用Default编解码的时候,Android使用So

2020-06-30 15:43:46 1520 1

原创 android webrtc学习 一(源码下载和编译)

android webrtc学习 一(源码下载和编译)源码下载和编译准备编译webrtc源码下载和编译准备android webrtc官网上说得很清楚,要使用Linux系统去编译,别再去折腾什么如何在windows或Mac上编译android webrtc了,所以老老实实的用上Linux系统的电脑,或者装虚拟机,最好是使用Ubuntu16.04及以上系统;注:如果是使用虚拟机,那么内存一定要分配足,不然编译过程会出现莫名其妙的错误,还不告诉你是因为内存不足导致的安装和配置环境1.1. 安装基础软

2020-06-30 09:50:13 1239 1

原创 Android webrtc使用USB摄像头

在疫情爆发的2020年,公司的Android项目要求支持外置摄像头,即要求支持USB摄像头;一脸懵逼的我从来没听过Android设备能支持USB摄像头的,只知道Android大机器能接外置的摄像头,但插口是接在Android机器上的前置和后置接口,也就是说可以通过Android自带的Camera类或Camera2类中API直接调用的;然而项目要的是在包含前置和后置摄像头之后,还要有USB摄像头,懵...

2020-04-17 16:19:35 3006 8

原创 Okhttp设置公共参数,以json对象放入@Body请求公共参数的配置方式

当网络请求都是基于一个URL,所有的接口都是同一个地址,而请求不同接口数据则是通过command字段进行配置,然后所有的请求参数都是需要自己写一个bean类,再转成json格式放入请求body里发给后台,而不是通过表单form-body发送,所以配置一些公共参数,如sessionId、timestamp等就有点麻烦,每个bean类都要加这些参数,或者写个基类BaseRequestBean,基类当中...

2019-07-19 14:59:59 6804 3

原创 (Android)自主项目埋点方案讨论

吐槽+废话:多久没有写博客了,因为没有时间,每天忙着项目,想着项目怎么做好;产品和技术经理每天都告诉程序员说:你们要有产品思维。可是,连需求场景都没有说清楚,我们如何有产品思维,产品给的需要是A,我们做出来的功能效果成A1,谁的问题呢,很难说得清楚。产品和技术经理又一直告诉程序员:我们要把自己的项目当成自己的孩子,我们要关心它,放心思在上面,要提出有建设性的建议,要想着把产品做好,并且自己也想去用...

2018-03-29 19:37:16 3346 5

原创 坑爹后台-json数据key和value未知的解析

在开始正题之前,我们先来提一个业务:获取所有客户的账号和名称按照正常的逻辑思维我们会生成怎么样的json数据呢,我们大部分人会这样生成:{    "allCustomer": [        {            "account": "zhangsan",            "name": "张三"        },        {       

2017-08-12 15:41:19 3235 1

原创 模仿微信最近联系人列表长按功能

前段日子项目中需要用到一个列表的item项长按弹出菜单列表的功能,想着想着其实就是跟微信类似的功能;微信最近联系人列表的item长按就会弹出“标为未读,置顶聊天和删除该聊天三个功能”,在此就来说一下如何去实现。基础思路:该弹出的菜单可以随着自己的手指长按位置而显示在指定的位置,那么多种弹窗功能当中,可以联想到使用PopupWindow。知识储备:PopupWindow的初始化,根据项目的需

2017-08-08 16:37:28 1516

转载 Android7.0以上自动更新安装apk

Android7.0以上加了很多特性,也对系统做了很多的优化和升级,而在对Uri的访问上也做了改变,以下用安装apk的例子来说明对于程序,我们要实现程序能够自动检查更新安装,我们需要给程序赋予权限uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />以上这是第一步,接着,我们需要在Mani

2017-08-08 13:45:33 6079

原创 butterknife:8.6.0使用

一直用butterknife的低版本,不知道butterknife新版本的使用,各种注解都无效,原来自己差了东西,下面是配置butterknife步骤1、在项目根目录下的build.gradle文件里配置dependencies { classpath 'com.android.tools.build:gradle:2.3.2'//加上这行 classpath 'co

2017-06-26 19:51:20 1062

转载 Error:Conflict with dependency 'com.google.code.findbugs:jsr305' in project ':app'. Resolved version

打开项目根目录的build.gradle文件,在android{}里面配置configurations.all { resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'}然后点击try again,等待便宜完成就O了转载于错误Conflict with dependency 'com.

2017-06-26 16:39:04 343

原创 TextView文字局部链接点击

有的时候,我们写的TextView需要TextView当中那个的文字部分能够点击,而不需要点击整个TextView控件才触发事件,只是点击TextView当中的部分文字,这种效果如何做到呢?不理解这种效果的朋友,可以想象一下,当微信上有好友将你删除,但当你发消息给他/她的时候,微信系统会返回一条提示消息,需要你发送好友验证,而这条提示消息不是整个控件可以点击,而是“发送好友验证”这几个字才可以点击

2017-06-03 10:27:39 373

原创 TextView设置autoLink和linksClickable="true"属性值后长按的问题

首先,我们要知道autoLink和linksClickable是干什么用的。autoLink当中有五个属性值:分别是phone、email、map、web、all和none,前四个分别是自动识别电话号码、邮箱、地址和网址,而第五个是识别前四个的全部,none是不识别;在不设置none而设置其他值的情况下,当你的TextView当中有phone/map/web/email的值的时候,并且link

2017-06-02 17:35:26 3335

原创 聊天工具输入法控件

星期六日闲来无事,看到之前写的一个聊天IM程序,在这个程序的聊天界面有一个自定义的输入法控件,效果还是挺不错,可以随意切换表情、语音输入、软键盘文本输入和其他功能选择,类似于微信控件。表情框架使用了LQREmojiLibrary表情库,个人感觉这个东西就像作者说的一样,超级牛逼,我把源码拷贝了下来,单独使用了library表情库,这样我就可以随意往里面添加自己想要的表情了;真的十分方便,顺便贴上该

2017-05-21 23:22:38 512

原创 关于ImageLoader must be init with configuration before using问题解决

在项目中依赖了com.lqr.imagepicker:library:1.0.0这个库,这个库是模仿微信选择的库,我在很多项目都使用了,需要的朋友可以看这边文章:http://www.opendigg.com/p/lqrimagepicker,里面的使用还是写的挺详细,不过我还是在这里也说一下并且引出问题。在引入该库之后,需要在自己的Application类中添加:/**

2017-05-20 15:13:28 859

原创 PhotoView无法显示大图片问题

PhotoView无法显示大图片,这些日子做的聊天IM程序,需要预览图片,一开始使用的是PhotoView,没有任何毛病,可是当对方发过来一张长截图的时候却显示不了了,自己很烦,自己又去自定义了一个ImageView,可是效果依然是一样;而且Bitmap还老是报出OOM,没办法,我只能先判断图片的大小、判断图片分辨率,如果超过了480*800*3就将图片的宽度高度设置为原来的二分之一,好了问题完美

2017-05-20 12:56:29 3404

空空如也

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

TA关注的人

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