Android
大东Pd
技术小白,多多指教。
展开
-
【Android】如何在布局文件中写圆角效果
如何在布局文件中写圆角效果前言当我问你,如何为一个View添加圆角效果时,你肯定会说:在drawable文件下新建一个xml文件,在里面写入下面的代码:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:topLeftRadius="10dp"原创 2020-07-29 19:37:03 · 834 阅读 · 4 评论 -
【Android】Handler机制源码解析
Handler机制是一套在Android端用于跨线程传递消息的机制。它内部维护了一个由根据消息触发时间进行排列的消息队列。并由一个死循环不断的从消息队列中获取队列最前面的消息,然后交由Handler进行消息分发。原创 2020-04-21 15:05:09 · 248 阅读 · 0 评论 -
【Android】蓝牙开发入门笔记
开头语该文章是我在学习蓝牙开发后自己总结出来的一些常见的方法。由于是笔记,因此可能会缺少一些细节说明,大体上仅记录一下思路。文章目录开头语1. 经典蓝牙服务端开启服务端和客户端通信关闭客户端扫描服务端连接服务端和服务端通信关闭2. 低功耗蓝牙BLE基础知识GattServiceCharacteristics服务端开启服务端开启广播广播设置广播内容扫描回复包新增服务新增特性回复客户端请求主动通知...原创 2020-04-13 14:37:22 · 612 阅读 · 0 评论 -
【Android】蓝牙快速开发工具包-入门级
开头语方便快速开发蓝牙,封装常用的操作。需要以下三个权限:android.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMINandroid.permission.ACCESS_FINE_LOCATION 定位权限是由于6.0之后扫描设备需要经典蓝牙服务端开启服务端首先,实例化一个BluetoothClassicalSe...原创 2020-04-13 14:35:39 · 799 阅读 · 0 评论 -
【Android】关于真机调试时报错:INSTALL_FAILED_USER_RESTRICTED的解决方法
文章目录完整报错信息出现原因以及解决办法第一种情况原因解决方法第二种情况原因解决办法完整报错信息Installation did not succeed.The application could not be installed: INSTALL_FAILED_USER_RESTRICTEDInstallation via USB is disabled.出现原因以及解决办法第一...原创 2020-03-23 14:34:49 · 2925 阅读 · 0 评论 -
【Android】事件分发机制源码解析
文章目录1. 分发顺序2.源码分析2.1 Activity中的分发流程dispatchTouchEventonTouchEvent总结2.2 ViewGroup中的分发流程dispatchTouchEventonInterceptTouchEvent总结2.3 View中的分发流程dispatchTouchEventonTouchEventACTION_DOWNACTION_MOVEACTION_...原创 2020-03-13 11:41:28 · 3206 阅读 · 0 评论 -
【Android】Retrofit基础源码分析
文章目录流程图基本使用1. 创建服务端ApiInterface2.配置BaseUrl生成Retrofit对象3.生成服务端ApiInterface对象4.调用服务端ApiInterface中的方法5.发起请求源码分析1. 配置BaseUrl生成Retrofit对象2. 生成服务端ApiInterface对象3. 调用服务端ApiInterface中的方法3.1 构建RequestFactory3....原创 2020-03-03 19:44:29 · 911 阅读 · 0 评论 -
【Android】OkHttp系列目录
【Android】OkHttp系列(一):发送请求与获取响应流程概述【Android】OkHttp系列(二):重试/重定向拦截器RetryAndFollowUpInterceptor【Android】OkHttp系列(三):桥接拦截器BridgeInterceptor【Android】OkHttp系列(四):缓存拦截器CacheInterceptor【Android】OkHttp系列(五)...原创 2020-02-13 15:56:30 · 457 阅读 · 0 评论 -
【Android】OkHttp系列(六):CallServerInterceptor
该系列OkHttp源码分析基于OkHttp3.14.0版本文章目录概述源码分析发送请求读取响应概述用于向服务器写数据以及从服务器读取数据。整个拦截器的主要逻辑是这样的,首先向服务器发送请求头,如果有请求体的话就向服务器发送请求体,然后就开始读取服务器的返回。同样的,首先读取服务器返回的响应头,然后根据状态码以及是否是websocket协议判断是继续读取响应头还是开始读取响应体。最后按照责任...原创 2020-02-13 15:50:29 · 455 阅读 · 0 评论 -
【Android】OkHttp系列(五):连接拦截器ConnectInterceptor
该系列OkHttp源码分析基于OkHttp3.14.0版本文章目录概述流程图源码分析概述该拦截器负责建立与服务器的连接,但是并不与服务器进行IO交互,IO交互是CallServerInterceptor的职责。生成了一个Exchange类。对于Exchange这个类的而言,我将其理解为一个包含了如何处理Http编码与解码的类,也是由它来指定使用的HTTP协议版本。流程图源码分析在该...原创 2020-02-13 15:46:14 · 505 阅读 · 0 评论 -
【Android】OkHttp系列(四):缓存拦截器CacheInterceptor
该系列OkHttp源码分析基于OkHttp3.14.0版本文章目录概述源码分析返回缓存缓存响应概述缓存响应以及返回之前的缓存的响应。整个拦截器可以分为两个部分,第一个部分为读取缓存,第二个部分为保存缓存。需要注意的是,如果没有配置缓存管理的话,OkHttp是不会帮你缓存的,每次请求都会向服务器发起。但是OkHttp是自带了一个缓存管理的,一个名为Cache的类。不过在OkHttpClien...原创 2020-02-13 15:32:59 · 575 阅读 · 0 评论 -
【Android】OkHttp系列(三):桥接拦截器BridgeInterceptor
该系列OkHttp源码分析基于OkHttp3.14.0版本文章目录概述源码分析UserRequest转换为NetworkRequestNetworkResponse转换为UserResponse概述官方的英文注释是这样写的:`Bridges from application code to network code. First it builds a network request f...原创 2020-02-13 15:22:19 · 369 阅读 · 0 评论 -
【Android】OkHttp系列(二):重试/重定向拦截器RetryAndFollowUpInterceptor
该系列OkHttp源码分析基于OkHttp3.14.0版本文章目录概述源码分析重试recoverisRecoverable总结所有不允许进行重试的情况重定向followUp什么时候为nullfollowUpBody什么时候不为null概述用于对连接失败时重新连接以及对需要重定向的响应进行重定向。源码分析对于所有的拦截器而言,关键逻辑都在其intercept()方法中。重试@Overr...原创 2020-02-13 15:17:46 · 1336 阅读 · 0 评论 -
【Android】OkHttp系列(一):发送请求与获取响应流程概述
文章目录流程图配置OkHttpClient配置请求Request执行请求同步请求execute()异步请求enqueue()拦截器责任链获取响应结果流程图配置OkHttpClientOkHttpClient client = new OkHttpClient.Builder() .addInterceptor(new TestInterceptor()) ...原创 2020-02-13 14:59:30 · 1379 阅读 · 1 评论 -
【Android】拥有权限后依然无法获取wifissid或返回unknown ssid的解决方法之一
文章目录问题描述手动解决代码判断获取网络信息的工具类问题描述拥有了ACCESS_WIFI_STATE、ACCESS_NETWORK_STATE、ACCESS_FINE_LOCATION等权限后,获取当前链接Wifi的Ssid依然返“unknown ssid”手动解决检查手机是否打开了位置信息,即手机是否允许定位。一般在下拉菜单栏中有个"位置信息"开关。代码判断可以使用Locati...原创 2020-01-06 09:57:12 · 7993 阅读 · 1 评论 -
【Android】CheckBox修改选中和未选中颜色
效果图:步骤:1、在/res/values/styles.xml中新建一个Style:<!--名字自定义--> <style name="CheckBoxTheme"> <item name="colorAccent">@color/colorPrimary</item><!--选中颜色--> ...原创 2019-12-07 14:30:35 · 7050 阅读 · 0 评论 -
【Android】Kotlin使用Glide无法生成GlideApp解决方法之一
今天遇到一个GlideApp一直无法生成的BUG,已经按照官方指引写好了类和注解了。@GlideModuleclass OkHttpGlideModule: AppGlideModule() { override fun registerComponents(context: Context, glide: Glide, registry: Registry) { ...原创 2019-12-06 15:33:02 · 1441 阅读 · 4 评论 -
【Android】6.0运行时权限申请工具
功能: 支持获取单个权限、多个权限(List的方式传入) 当权限被拒绝时,会返回被拒绝的权限名称使用方法: 1、需要使用的权限一定要记得先在"AndroidManifest.xml"中先声明,否则可能无法执行获取权限的动作! 2、在需要申请权限的地方new 工具对象,并将需要申请的权限用List的方式传入,然后一定要设定监听器,才会执行获取权限的动...原创 2019-01-07 09:07:06 · 583 阅读 · 0 评论 -
【Android】记录一个运行时权限不弹出授权框的坑
问题描述: 按照正常的获取运行时权限流程走,但是不弹出授权框,就直接走回调的拒绝授权了。解决过程: 刚开始以为是勾选了不再提示的原因,后来卸载重装,还是一样的问题。去权限管理列表查看,发现列表中没有我申请的权限(写SD卡),于是怀疑是不是权限名称打错了。后来仔细查看AndroidManifest.xml文件,发现还真是!!! 错误写法是这样子的:<us...原创 2019-01-07 14:44:01 · 4516 阅读 · 0 评论 -
【Http】关于Http请求头中的Content-type问题
关于Http请求头中的Content-type问题,前端用Android展示,后端为php。原创 2019-03-25 09:58:33 · 16556 阅读 · 1 评论 -
【Android】联系人、仿微信国家选择的实现思路
效果图:功能描述:主要就是实现右侧的滑动,然后根据首字母来将列表滑动到对应的首字母处。布局说明:整个布局为一个ExpandableListView(二级列表),一个RecyclerView,一个由RelativeLayout包裹的TextView。其实如果不做首字母的话没必要用二级列表的,虽然二级列表和ListView用法上没什么区别。具体思路:将json解析后,利...原创 2019-03-27 16:37:13 · 1510 阅读 · 0 评论 -
【Android】仿今日头条顶部滑动字体染色效果
效果图:顶部的标题颜色,跟随手指滑动时进行歌词的染色效果。思路分析:首先想到的是利用两层TextView,一层是默认的颜色,一层是要染色的颜色,然后染色层宽度随着手指滑动的距离进行改变,这样由于染色层在默认层的上方,所以会覆盖默认层,就能达到歌词染色的效果了。简单实现:那么先试试我们的想法是否可行,写一个FramLayout来作为容器。 <FrameLayout...原创 2019-04-12 09:20:33 · 614 阅读 · 0 评论 -
【Android】一个低入侵的RecyclerView滑动菜单控件-ScrollMenuLayout
突发奇想,想自己实现RecyclerView中的滑动菜单控件。看了几篇大神的文章,有继承自ViewGroup实现的,有继承RecyclerView实现的,等等...但是都不是太符合我的预期,我希望的是一个简单的,并且能很快使用的旧项目中的。因此,在看了几篇文章后,决定自己来尝试着写一个可以很快使旧项目也能新增滑动菜单的控件。老规矩,先上效果图。效果图:效果很常见,没有炫酷的动画,因为要...原创 2019-04-17 09:17:13 · 336 阅读 · 0 评论 -
【Android】ScrollMenuLayout使用说明
本文为 【Android】一个低入侵的RecyclerView滑动菜单控件-ScrollMenuLayout的使用说明。如何快速的为旧项目添加侧滑菜单:这里我用我之前写的一个项目来做例子,给大家展示一下如何快速的为旧项目添加侧滑菜单的功能。这是未加侧滑菜单时的样子:现在我的想法是想给每一个文章都加上滑动菜单,然后菜单中可以将文章进行收藏。1、导入ScrollMenuLayo...原创 2019-04-17 11:56:19 · 220 阅读 · 0 评论 -
【Android】一道关于Activity生命周期函数的面试题
最近遇到一道面试题:“当前栈顶活动为A,此时再启动一个A活动会调用哪个回调?”对于这题,暂且称已经启动的活动A为“1号A活动”,未启动的称为“2号A活动”。那么此时的调用的回调是分两种情况的的:1、A活动的启动模式为默认,也即是“standard”顺序为:1号A活动(onPause)→2号A活动(onCreate)...2、A活动的启动模式不为默认,可以是:“singleTas...原创 2019-06-27 15:24:30 · 173 阅读 · 0 评论 -
【Android】EventBus事件接收不到的几种情况
关于EventBus事件接收不到,遇到过以下几种情况。1、没有调用EventBus的注册方法(register)2、接收方法中的参数与发送的不一致,导致EventBus判断没有对应的注册者3、发送的是粘性事件,并且是同一类型的粘性事件(这个是我最近遇到的)对于第三点的原因,经过阅读源码发现:粘性事件会加入一个叫stickyEvents的Map集合中,该集合使用event.get...原创 2019-07-09 09:22:29 · 8578 阅读 · 2 评论 -
【Android】学习ItemDecoration并制作时间轴效果
首先一个问题,什么是ItemDecoration呢?有道翻译来看,Decoration翻译为“装饰”。那顾名思义,就是用来装饰我们的Item的类。下面将针对ItemDecoration中的几个方法进行详细的讲解。1、getItemOffsets/** * 执行ItemCount次 * * @param outRect 操作item的边距 *...原创 2019-08-09 15:55:11 · 745 阅读 · 0 评论