自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android10适配-作用域存储

android 10已经推出来一段时间了,因为用户反馈,公司的demo在android10手机上有问题,适配的问题便被提上了日程。首先先给出官方文档的地址:外部存储访问权限范围限定为应用文件和媒体 。

2020-04-06 22:29:32 1552

原创 环信IM SDK使用(四):环信会话列表实现及相关接口介绍

前言:本文是在已经集成环信SDK及使用环信easeUi的基础上进行的,如果不了解环信SDK集成及easeUi,请点击跳转:环信IM SDK使用(一):集成环信SDK及注意事项和环信IM SDK使用(三):环信EaseUi库介绍。从这篇文章开始,笔者会一步步集成环信IM SDK,并介绍集成中用到的主要接口。一、集成会话列表模块1、继承EaseConversationListFragmentpublic class ConversationListFragment extends EaseConve.

2020-10-30 10:59:29 1697 6

原创 恭喜郭霖成为GDE(Google开发者专家)!

GDE的全称是Google Developer Expert,是Google在全球范围内开展的一个开发者专家认证项目。如果你对Google的某个技术领域非常擅长,同时在这个领域有比较高的影响力的话,那么就有可能成为Google官方认证的开发者专家。早上地铁上,例行看一下郭神今天发了什么技术文章,结果是郭神分享成为GDE的经历。郭神近期成为了国内Android方面第二位的GDE。再次表示祝贺!附:郭神随笔:分享我成为GDE(Google开发者专家)的经历...

2020-10-21 10:35:31 1378

原创 RecyclerView网格布局设置空白布局

关于RecyclerView设置空白布局,网上已经有不少大神有总结了,如:关于RecyclerView如何设置空布局(setEmptyView)的几种方式总结了设置空白布局的几种方式。作者本次是在通过修改Adapter的这个方式基础上讲的。正如关于RecyclerView如何设置空布局(setEmptyView)的几种方式文章中介绍的设置空白布局的方式,只适用于列表布局,如果是网格布局则不适用了。...

2020-10-20 10:28:09 1017

原创 环信IM SDK使用(三):环信EaseUi库介绍

为了后续更加专注于环信IM SDK本身的介绍,本次文章着重介绍一下环信提供的EaseUi库,EaseUi库可以方便开发者更加方便和快捷的集成和使用环信SDK。1、EaseUI类提供了SDK初始化的方案。在EaseUI的init()方法中会检查当前进程是否是主进程,保证SDK只在主进程中初始化。2、提供了聊天,会话及联系人的fragment,直接使用或者继承扩展,方便开发者使用。3、提供了文本,文件,图片,定位,视频,音频及Custom IM消息类型。

2020-10-19 10:54:05 1040

原创 环信IM SDK使用(二):环信SDK初始化及注册和登录

本章主要介绍了如何初始化环信SDK以及如何注册和登录环信账号,本章的前提是需要完成环信IM SDK的集成,如果您还不了解如何集成SDK,请翻看上一篇文章。

2020-10-11 22:51:48 1593 1

原创 环信IM SDK使用(一):集成环信SDK及注意事项

环信IM SDK可以帮助用户快速开发IM相关的应用。如何快速集成环信IM SDK呢?首先附上环信官网的集成SDK的文档:Android SDK 介绍及导入一、集成环信IM SDK1、申请环信Appkey要使用环信IM SDK第一步就是要去环信官网申请环信的Appkey。具体的申请过程,参考环信官方:快速体验环信。2、添加SDK依赖(1)添加远程依赖a、项目根目录下build.gradle配置:repositories { google() jcenter()}b、

2020-09-29 18:17:24 4037

原创 RecyclerView扩展快捷菜单功能后适配ConcatAdapter

本文主要用于介绍增加RecyclerView的长按快捷菜单功能后,并使用官方提供的ConcatAdapter(MergeAdapter)之后如何获取相对坐标的处理办法。

2020-08-02 09:52:36 578 1

原创 RecyclerView更新之-ConcatAdapter(MergeAdapter)

1、2020 年 4 月 1 日1.2.0-alpha02中官方增加了ConcatAdapter(这时候还叫MergeAdapter)。2、 2020 年 6 月 24 日发布的androidx.recyclerview:recyclerview:1.2.0-alpha04版本,将MergeAdapter重命名为ConcatAdapter。ConcatAdapter是可以线性组合多个适配器的新 RecyclerView 适配器。官方提供的用法如下:MyAdapter adapter1 = ....

2020-07-27 18:51:46 2947

原创 Android10适配-限制对屏幕内容的访问

AndroidQ版本官方限制了对屏幕内容的访问。为了保护用户的屏幕内容,Android 10 更改了 READ_FRAME_BUFFER、CAPTURE_VIDEO_OUTPUT 和 CAPTURE_SECURE_VIDEO_OUTPUT 权限的作用域,从而禁止以静默方式访问设备的屏幕内容。从 Android 10 开始,这些权限只能通过签名访问。需要访问设备屏幕内容的应用应使用 MediaProjection API,此 API 会显示提示,要求用户同意访问。如果还使用之前的逻辑访问屏幕内容的话

2020-06-09 17:30:55 3552 1

原创 手把手带你快速实现直播聊天室

本文聊天室是集成环信IM SDK实现聊天功能,及实现发送礼物、点赞和弹幕等功能。视频直播采用的是七牛相关的推拉流SDK。app server实现了创建聊天室,记录聊天室信息等功能,采用的是环信配套直播聊天室的开源项目。文章分为三块进行介绍:1、集成聊天室SDK,实现发送消息功能,实现发送礼物、点赞及弹幕等自定义消息。2、集成视频直播SDK。3、与app server的交互。

2020-05-31 10:01:43 4128

原创 Android10适配-针对从后台启动 Activity 的限制

Android 10 中的隐私权变更从 Android 10 开始,系统会增加针对从后台启动 Activity 的限制。此项行为变更有助于最大限度地减少对用户造成的中断,并且可以让用户更好地控制其屏幕上显示的内容。只要您的应用启动 Activity 是因用户互动直接引发的,该应用就极有可能不会受到这些限制的影响。谷歌官方建议将从后台启动的Activity改为显示通知。还可以选择提供全屏In...

2020-04-08 18:55:50 10778 3

原创 约束布局ConstraintLayout通过xml和代码添加约束

1、xml设置ConstraintLayout约束。2、代码设置ConstraintLayout约束。

2019-10-21 18:06:25 3423

原创 Gradle多渠道配置(多入口,多icon,不同应用名)

最近公司要求开发新的app,要求在原来的app基础上进行删减,但是包名,icon,应用名等均不同,参考了郭林大神公众号上推送的博文写了一个demo,基本上能够解决上面的问题了。参考博文:不一样的Gradle多渠道配置总结demo地址:VariantsTest...

2019-09-11 17:55:37 597

原创 Kotlin使用高阶函数实现多方法回调

最近项目中开始使用kotlin,遇到的一个问题就是从多方法回调的问题常规的java回调如下:public interface OnCallBack<T> { void onSuccess(T models); void onFailed(String message);}public abstract class OnRespCallBack<T>...

2019-09-11 17:35:11 2542 1

原创 AAPT2 error: check logs for details问题修复

请假半个月回到公司,发现运行项目出现以下报错:AAPT2 error: check logs for details百度了一些文章,发现了解决的办法就是升级gradle版本,我的具体做法如下:1、将项目中build.gradle中修改如下:dependencies { classpath 'com.android.tools.build:gradle:3.2.1' ...

2019-09-04 15:59:49 315

原创 修改或者替换Toolbar右侧更多按钮(三个点)

**问题:**项目中需要将一些页面中toolbar的快捷菜单的更多按钮由白色改为黑色,从网上搜过一些,大多是通过修改theme实现,例如Material Design主题与ToolBar讲解,由于需要修改的页面继承的父类是位于framework中,其他项目也有使用,不可以修改父类中的theme。并且如果单纯修改theme中的colorControlNormal颜色,会修改一些按钮的默认显示颜色,不...

2019-08-02 09:07:21 6552

原创 针对屏幕下方出现黑边的手机适配

针对屏幕下方出现黑边的手机适配最近公司应用安装一款华为手机出现了以下的情况:但是看京东啊,淘宝都是正常的,点击下方“全屏显示”的按钮也能实现不显示下面的黑边,但是这是什么情况呢?打开华为手机的设置,显示,全屏显示页面后,官方给了...

2019-01-23 08:47:59 3810

原创 ViewPager实现懒加载

日常开发中很多场景会用到ViewPager+Fragment,一般情况下,我们是通过setOffscreenPageLimit(int limit)方法控制页面的预加载数量。但是有时候,我们又会有这样的需求,当用户滑动到相关页面的时候,才加载相关页面的数据,从而节省用户流量。那么,设置setOffscreenPageLimit(int limit)是否可以达到这样的目的呢,答案是肯定的:不能!为...

2018-12-31 21:34:35 573

原创 RecyclerView设置分割线(自定义宽度与颜色)

RecyclerView自出现后,越来越受到欢迎,源自其强大的扩展性。网上关于RecyclerView用法的文章有很多,我再这里就不再重复搬砖了。在我的使用过程中,就是使用分割线方面还有些生涩,经过网上查阅文章,特做此记录。一、DividerItemDecoration官方已经在v7包中提供了分割线的类,即android.support.v7.widget.DividerItemDec...

2018-07-23 17:16:04 14611 2

原创 Android水波纹(ripple)点击效果

近日看到某些文章讲水波纹点击效果,使用该效果可以增加用户的体验效果,故看了一下网上文章并做记录。一、如何使用1、水波纹效果适用于API21以上,使用的话,需要设置drawable-v21文件夹。 2、具体使用就是在平时使用的drawable中的标签shape,selector等的外面加一层标签ripple即可。 3、见代码: drawable文件夹中&lt;?xml vers...

2018-07-22 23:26:31 4657

原创 gradle构建多渠道包(多applicationId,多图标,多app名称)

如何利用同一套代码,要打包不同applicationId,不同图标,不同包名,不同启动页等?此时就需要用到构建神器-gradle。 先上代码...def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}android { compileSdkVe...

2018-06-20 00:22:45 3280

原创 Error:In declare-styleable FontFamilyFont, unable to find attribute android:font

今天在Android Stuido重新编译项目,结果发现居然build failed!报的错如下:Error:In &lt;declare-styleable&gt; FontFamilyFont, unable to find attribute android:fontError:In &lt;declare-styleable&gt; FontFamilyFont, unable ...

2018-05-30 00:01:26 3206

原创 热更新--bugly集成及注意事项

本文不是介绍bugly或者tinker是如何集成的,官网就很详细。本文主要是记录了为什么选择bugly及使用过程中出现的问题,以及需要注意的事项。热更新就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能的一个技术方案。 关于热更新更详细的解读,可以转到文末参考文章第一篇看看。如何选择热更新方案?当前市面的热补丁方案有很多,其中比较出名的有阿里的And...

2018-04-16 22:54:08 1138

原创 仿微信语音输入页面(讯飞语音)

boss最近提出新的需求,说是项目中的语音输入(讯飞语音)界面不够友好,要求按照微信语音输入界面进行修改,于是乎有了本篇文章。 项目中用到的语音输入采用的是讯飞的SDK。集成讯飞语音输入,请参考官方文档。 先看看微信语音输入的界面吧。 在进行语音输入时需要按住中间的按钮,按钮的背景色能够跟随输入音量的大小进行扩大或者缩小,有文字输入后,按钮的左右两侧分别显示清空和完成。一、首先进...

2018-04-12 21:55:42 5697 1

原创 微信小程序中文本实现单行且以省略号结尾

针对某些需求,要求文本只展示一行,如果文字过多,最后以省略号结尾。 只需针对text标签进行如下设置即可:.store-location{ width: 450rpx; height: 36rpx; overflow: hidden;//隐藏 white-space: nowrap;//不换行 text-overflow: ellipsis;//最...

2018-04-03 18:04:52 3677

原创 微信小程序js日期格式转化及加减

项目中需要用到日期的格式转化及相关的加减,根据需要的情况,整理了部分方法。并列出date的构造方法及方法以作记录。一、以下是根据小程序demo中util.js文件修改的const formatTime = date =&gt; { const year = date.getFullYear() const month = date.getMonth() + 1 const da...

2018-03-29 14:29:23 8909

原创 微信小程序scroll-view横向滑动嵌套for循环

1、布局及样式等(1)xml布局&lt;view class="container"&gt; &lt;scroll-view scroll-x="true"&gt; &lt;view class="item-content" wx:for="{{list}}" wx:for-item="item"&gt;

2018-03-26 23:09:10 5655 2

原创 透明式状态栏-全代码实现方式

前言:项目中用到沉浸式状态栏,并要求随着身份的不同呈现不同的颜色。然后拜读了一些大神的文章,大致总结一下。 网上实现方式大致有两种:一种就是鸿洋大神介绍的方式,我称之为代码式;另一种是通过style+xml实现,我称之为xml式。经过我自己的测试,xml式在android4.4出现navigationbar的背景色被覆盖的情况,本人暂时没有找到比较好的解决办法,故推荐采用第一种方式,即代码式。 ...

2018-03-19 23:14:10 895

原创 viewpager+fragment获取fragment是否可见的状态

前言:近日根据项目需求,需要获取到viewpager+fragment中某个fragment的可见状态。但是fragment的OnResume()和OnPause()方法在切换tab时并不回调,如何才能判断该fragment是否可见呢?解决办法:重写setUserVisibleHint方法。 @Override public void setUserVisibleHi...

2018-03-14 15:36:12 6218 1

原创 loadLibrary msc error:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader...

最近遇到一个error,如下:E/MscSpeechLog: loadLibrary msc error:java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zip file"/data/app/com.edt.edtpatient-2/base.apk", zip file"/data/...

2018-03-12 14:01:55 2381

原创 android.os.FileUriExposedException: file:///storage/emulated/0/ehcda exposed beyond app through...

近日在写通过相机获取头像并上传的逻辑时,发现调取相机老是出错,以下是错误log:Process: com.edt.edtadmin, PID: 17070 android.os.FileUriExposedException: file:///storage/emulated/0/ehcda exposed beyond app through ClipData.Item.get

2018-01-25 14:49:25 3069

原创 Activity中OnDestory()回调慢的原因及解决办法

前言:近日在测试时,发现bug,聊天页面的数据,有时候有,有时候没有。经过查找,原来是这个页面销毁后,很长时间才回调OnDestroy()方法!如果在回调OnDestroy()方法之前,又重新点击这个页面,就导致这个页面没有数据。导致原因:在OnDestroy()中进行了数据存储等操作!原因分析:先附上源码中Activity的OnDestroy()的官方解释:* P

2018-01-24 17:41:27 5497 1

转载 Android Studio插件整理大全

工欲善其事必先利其器,在网上看到很不错的一篇AS的插件整理,与大家共分享。 最完整Android Studio插件整理

2018-01-24 11:34:36 288

原创 WebStorm常用快捷键及自定义快捷键

古语言之:工欲善其事必先利其器。 开发进行之前就要先要了解开发工具,以下整理了一些常用的快捷键,以及如何自定义快捷键。1、常用快捷键摘自博文:http://blog.csdn.net/bboyjoe/article/details/51064769 Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/…/ ) Shift+F6 重构-重命名 Ctr

2018-01-21 22:19:12 21884

转载 WebStorm开发微信小程序配置

原文链接:https://www.cnblogs.com/pansidong/articles/7563155.html 说明:文章摘自上面的链接,部分说明不是很清楚,进行了修改。步骤二的图片摘自博文:http://blog.csdn.net/westlonly/article/details/78119276。使用了微信提供的开发工具是真心难用,卡顿厉害、中英文切写注释换相当不爽、还没办法

2018-01-21 21:31:33 8220

原创 Gson用法总结

前言JSON (官网) 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便。其重要性不言而喻。解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson等。本文主要用于收集整理作者之前使用的Gson的一些用法。一、基本用法Gson的入门使用 你真的会用Gson吗?二、Gson属

2017-12-25 14:25:30 359

转载 android版本号比较大小

项目中版本更新,需要比较服务器与本地版本号大小,从网上找到一篇不错的,分享一下。 网址链接:android 版本号大小比较

2017-12-11 15:55:23 1305

原创 Rxjava+Retrofit实现多图片上传

1、前言项目需求:要求实现多张图片上传,并携带其他属性值。 项目使用框架:Rxjava+Retrofit+Okhttp。 先附上大神写的关于Retrofit的详细用法,本文所写以此文为基础:Retrofit详解。2、后台接口 分析后台接口,可以知道,我们需要以表单的形式上传,并且需要上传多张图片。3、前端定义接口根据Retrofit注解知识可知,选用POST进

2017-12-04 21:14:56 5944 9

原创 TextView用法总结

TextView是Android中使用频率最高的控件,本文旨在总结平时用到的TextView的一些用法,及从网上看到的平时不常用的用法。本文主要会是一些博文链接。一、属性用法1、drawable属性TextView的drawable用法及如何添加其点击事件2、EditText不获取焦点方法一:让EditText失去焦点,使用EditText的clearFoc

2017-12-03 12:00:21 783

空空如也

空空如也

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

TA关注的人

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