<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[杜壁奇的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/android_upl</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; android_upl]]></copyright><item><title><![CDATA[java/kotlin正则表达式]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/131296585</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/131296585</guid><author>android_upl</author><pubDate>Fri, 23 Jun 2023 19:47:18 +0800</pubDate><description><![CDATA[java正则表达式简单用法]]></description><category></category></item><item><title><![CDATA[使用RecyclerView开发TabView]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/130190475</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/130190475</guid><author>android_upl</author><pubDate>Tue, 18 Apr 2023 18:00:00 +0800</pubDate><description><![CDATA[使用RecyclerView实现TabView]]></description><category></category></item><item><title><![CDATA[android事件分发机制源码分析]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/129265110</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/129265110</guid><author>android_upl</author><pubDate>Tue, 28 Feb 2023 18:24:06 +0800</pubDate><description><![CDATA[android view事件分发源码分析]]></description><category></category></item><item><title><![CDATA[实现RecyclerView二级列表]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/129263009</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/129263009</guid><author>android_upl</author><pubDate>Tue, 28 Feb 2023 16:40:25 +0800</pubDate><description><![CDATA[使用RecyclerView实现二级列表]]></description><category></category></item><item><title><![CDATA[Android accessibility开发笔记]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/129247110</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/129247110</guid><author>android_upl</author><pubDate>Mon, 27 Feb 2023 23:25:09 +0800</pubDate><description><![CDATA[android accessibility开发]]></description><category></category></item><item><title><![CDATA[使用kotlin编写html dsl框架]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/129246056</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/129246056</guid><author>android_upl</author><pubDate>Mon, 27 Feb 2023 18:13:19 +0800</pubDate><description><![CDATA[使用kotlin开发了一个html dsl的玩具]]></description><category></category></item><item><title><![CDATA[android EditText设置后缀]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/129245726</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/129245726</guid><author>android_upl</author><pubDate>Mon, 27 Feb 2023 17:21:33 +0800</pubDate><description><![CDATA[为android EditText添加后缀]]></description><category></category></item><item><title><![CDATA[android开发优化代码质量的一些思考]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/129244756</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/129244756</guid><author>android_upl</author><pubDate>Mon, 27 Feb 2023 17:09:07 +0800</pubDate><description><![CDATA[不知道起什么标题比较合适，所以起了一个这么奇怪的标题。
本意是将自己的一些经验输出出来，但又不敢确定写出来的内容的质量，所以不敢起如何写优质代码类似这样的标题。]]></description><category></category></item><item><title><![CDATA[android unit test mock框架使用记录]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/129242011</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/129242011</guid><author>android_upl</author><pubDate>Mon, 27 Feb 2023 16:33:05 +0800</pubDate><description><![CDATA[之前上班时，开发一个功能之后，还需要编写测试用例，使用的框架是mock。
为什么防止以后用到时忘了，在这里记录一下。]]></description><category></category></item><item><title><![CDATA[EventBus源码解析-总结篇]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/108170093</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/108170093</guid><author>android_upl</author><pubDate>Mon, 24 Aug 2020 21:30:48 +0800</pubDate><description><![CDATA[目录
方法分析

方法分析
unregister
unregister
取消注册
```java
/** Unregisters the given subscriber from all event classes. */
public synchronized void unregister(Object subscriber) {
    List
]]></description><category></category></item><item><title><![CDATA[EventBus源码解析]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/107631874</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/107631874</guid><author>android_upl</author><pubDate>Sun, 23 Aug 2020 14:02:29 +0800</pubDate><description><![CDATA[EventBus github：https://github.com/greenrobot/EventBus
本博客是基于EventBus3.2.0版本编写的，不同版本的代码可能有所不同。
目录
如何使用
方法分析
其他代码
个人推荐用法
后记

如何使用
先从如何使用EventBus开始，再分析每个步骤的代码。
注册
Register and unregister your subscriber. For example on Android, activities and fragments shoul]]></description><category></category></item><item><title><![CDATA[java的ClassLoader知识点总结]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/106883940</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/106883940</guid><author>android_upl</author><pubDate>Mon, 22 Jun 2020 23:24:32 +0800</pubDate><description><![CDATA[前言

视频地址：https://www.bilibili.com/video/BV1qE411Y7FQ?p=1，只想要稍微了解一下可以看p34-p36
学了一段时间的ClassLoader，决定通过博客的形式复习一遍

注：本文所有的代码都是直接看笔记手动打出来的，所以难免有出错，如果编译错误就自己改一改吧
目录
基本信息
类的加载
自定义ClassLoader
注释相关
代码相关
基本信息
概念
在java代码中，类型的加载、连接与初始化过程都是在程序运行期间完成的。这种方式提供了更加强大的灵活性，增加]]></description><category></category></item><item><title><![CDATA[安卓实现替换EditText粘贴的内容]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/104803768</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/104803768</guid><author>android_upl</author><pubDate>Wed, 11 Mar 2020 22:36:54 +0800</pubDate><description><![CDATA[效果图



在点击粘贴之后弹出了一个toast提示，既然可以做到弹出toast，那想干其他事情还不简单。比如，将用户粘贴的文本替换成其他文本，这才是研究实现这个功能的原因。

先说一下实现方式，需要继承EditText/AppCompatEditText，再重写onTextContextMenuItem方法，先直接上代码。


public class CustomEditText extend...]]></description><category></category></item><item><title><![CDATA[Flutter常用第三方库整理]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/104079452</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/104079452</guid><author>android_upl</author><pubDate>Fri, 24 Jan 2020 09:52:40 +0800</pubDate><description><![CDATA[记录一下,防止有需要的时候才去慢慢找

不定时更新

贴出来的版本并不一定是最新版本,想要获取最新版本,只能去对应的链接获取



谷歌地图

google_maps_flutter: ^0.5.21+15

https://pub.flutter-io.cn/packages/google_maps_flutter



图片缓存

cached_network_image: ^2.0.0
...]]></description><category></category></item><item><title><![CDATA[安卓实现带搜索框的Spinner(2)]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/86750596</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/86750596</guid><author>android_upl</author><pubDate>Thu, 07 Feb 2019 22:08:13 +0800</pubDate><description><![CDATA[效果图:



源码

之前在这篇文章介绍了如何基于TextView实现带搜索框的Spinner

直到拿到项目中使用,才发现了各式各样的问题,想着解决这些问题太麻烦了,所以决定重写

现在看来,很庆幸当时决定重写,因为重写后很多地方的代码看起来不像之前那么绕,之前一个onClick方法写了一堆代码,现在的onClick方法也简化了很多

先初始化3个常用变量


val screenHeight...]]></description><category></category></item><item><title><![CDATA[android使用DataBinding踩坑记录]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/85395408</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/85395408</guid><author>android_upl</author><pubDate>Sun, 30 Dec 2018 22:24:12 +0800</pubDate><description><![CDATA[---error: duplicate attribute.



估计很多人遇到后都不知道怎么办,但一直提示layout文件有问题,所以就尝试将跟布局的width和height属性去掉,然后就没有这个问题了



---有ViewPager的界面必须为ViewPager设置一个id

在没有使用DataBinding的时候,通常都会为ViewPager设置一个id.有一次在使用的时候结合Data...]]></description><category></category></item><item><title><![CDATA[Android实现RecyclerView的ItemDecoration]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/84503564</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/84503564</guid><author>android_upl</author><pubDate>Sun, 09 Dec 2018 22:20:18 +0800</pubDate><description><![CDATA[RecyclerView出来已经好久了,关于ItemDecoration的文章也一大堆,我也来讲讲ItemDecoration的使用方式.

源码

使用过ListView/GridView或多或少都有在每个Item中间添加间隔物这样的需求,也都提供了相应的添加方式.RecyclerView也不例外,只不过Google只是提供一个叫ItemDecoration的类,并没有提供比较好的实现类,所以这...]]></description><category></category></item><item><title><![CDATA[安卓实现类似汽车速度表的进度条]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/80719159</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/80719159</guid><author>android_upl</author><pubDate>Wed, 20 Jun 2018 21:28:53 +0800</pubDate><description><![CDATA[效果图



左边的黑色边框有一部分看不到,这是三星自带的录制屏幕软件的问题,请不要在意

这个控件主要分为5个部分:

1,外边框.2,进度条.3,隔离进度条和中间圆盘的部分.4,文本.5,中间圆盘

进度条

    进度条:如果没有将canvas先旋转90°的话会发现画出来的渐变效果是这样的

    

    就会发现右下角这都是什么玩意,代码:


val paint = Paint(...]]></description><category></category></item><item><title><![CDATA[安卓实现带搜索框的Spinner]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/79761047</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/79761047</guid><author>android_upl</author><pubDate>Tue, 29 May 2018 22:40:08 +0800</pubDate><description><![CDATA[实际开发中发现该View写得有问题,所有重写了一个,链接

由于我接手现在开发的app的时候用的Spinner是https://github.com/jaredrummler/MaterialSpinner 这位大神的,所以里面一些解决问题的思路是参考这位大神的,先感谢他.

效果图



实现思路

1,继承TextView,内置一个PopupWindow用于弹出列表

2,P...]]></description><category></category></item><item><title><![CDATA[修改android studio导入的第三方gradle的源码]]></title><link>https://blog.youkuaiyun.com/android_upl/article/details/78897309</link><guid>https://blog.youkuaiyun.com/android_upl/article/details/78897309</guid><author>android_upl</author><pubDate>Mon, 25 Dec 2017 21:47:41 +0800</pubDate><description><![CDATA[使用android stuido无法直接修改,谈一下自己修改源码的过程

事情是这样的,前几天发现鸿洋大神的百分比控件在安卓7.0以上的marginLeft/marginRight有时没起作用,然后在鸿洋的github上看到了解决方案.

但这个要修改源码,本来,直接将github上面的源码下载下来,然后修改一下再替换掉就可以解决了,但并不想这么做,而android studio又没办法直接

修...]]></description><category></category></item></channel></rss>