<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gesanri的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gesanri</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gesanri]]></copyright><item><title><![CDATA[OpenFeign超时时间设置不生效问题排查]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/132245179</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/132245179</guid><author>gesanri</author><pubDate>Sat, 12 Aug 2023 10:23:30 +0800</pubDate><description><![CDATA[查资料都是说ribbon或者hystrix的超时时间设置问题，但实际并不是，没办法，去看源码，在FeignClientFactoryBean这个类里的。最近升级springboot 3，突然发现配置文件中的openFeign的超时时间设置不生效了。可以看到配置是从FeignClientProperties这里读的。多说两句，其实除了看源码，直接看官网可能更直接一点。对比之前的版本，这个类的注解为。所以问题很明显了，将配置改为。完后进入这个类，发现注解。]]></description><category></category></item><item><title><![CDATA[RxJava2+Retrofit2实现网络请求和解析封装]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/52701651</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/52701651</guid><author>gesanri</author><pubDate>Sun, 02 Oct 2016 13:40:16 +0800</pubDate><description><![CDATA[半年多前写过一篇用Retrofit2请求网络和解析的博客，Retrofit2的简单应用与封装，不过当时其实还是遗留了不少问题没有处理，比如如果有公共参数放Header里面怎么处理，请求过程中想显示进度框怎么处理，退出时要退出网络请求怎么处理等等，这两天看了下RxJava，觉得有点意思，就想用RxJava来重新改进一下之前的这个封装]]></description><category></category></item><item><title><![CDATA[Android使用RecyclerView实现仿微信联系人列表]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/52071113</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/52071113</guid><author>gesanri</author><pubDate>Sat, 30 Jul 2016 12:25:40 +0800</pubDate><description><![CDATA[现在联系人列表基本都是按照字母或者拼音来进行分类，右边有一排字母供用户快速定位到指定的字母位置，效果图如下：]]></description><category></category></item><item><title><![CDATA[Android Marshmallow实现文字选中]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/51792082</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/51792082</guid><author>gesanri</author><pubDate>Thu, 30 Jun 2016 18:10:39 +0800</pubDate><description><![CDATA[在浏览器里，我们经常在网页上看到中意的内容，想选择特定的内容，完后复制，再在其它地方粘贴，这是很常见的功能，不过由于是在网页中，所以理论上来说，应该是用JavaScript或者其它类似的技术实现的，而不是Android，今天在看Marshmallow的文档时，意外发现新推出了Text Selection的功能，就学习了一下，自己写了个小例子，先看效果图：


功能很简单，就是上面一个Text]]></description><category></category></item><item><title><![CDATA[Android 图片弹跳动画2]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/51622921</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/51622921</guid><author>gesanri</author><pubDate>Thu, 09 Jun 2016 23:31:10 +0800</pubDate><description><![CDATA[在上一篇博文Android 图片弹跳动画里，我用两种方法实现了一个弹跳的动画，实现效果上篇博文里面有，这里就不再贴了，虽说是两种方法，但实现机制是大同小异，核心思想就是递归的不断启动动画，来实现View的上升和下降，后来发现还有另一种方法，不需要递归的去启动多个动画，只需要启动一个动画即可。


这里核心思想是自定义Interpolator，也就是插值器，关于插值器是什么网上有很多详细的介绍]]></description><category></category></item><item><title><![CDATA[Android 图片弹跳动画]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/51339455</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/51339455</guid><author>gesanri</author><pubDate>Sat, 07 May 2016 20:24:23 +0800</pubDate><description><![CDATA[这几天看到一个小动画，觉得有点意思，就自己实现来看看，先看效果图
http://img.my.youkuaiyun.com/uploads/201605/07/1462618630_6882.gif]]></description><category></category></item><item><title><![CDATA[Retrofit2的简单应用与封装]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/50938275</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/50938275</guid><author>gesanri</author><pubDate>Sun, 20 Mar 2016 23:05:18 +0800</pubDate><description><![CDATA[Retrofit出来有一段时间了，我最近才知道有这个框架，之前一直使用的Volley，知道Retrofit后就试用了一下，感觉还是挺不错的，使用起来比Volley更方便，封装也比较简单，下面先简单介绍下它的基本使用方法


我用Android Studio开发，首先，在build.gradle中引入Retrofit的依赖
compile 'com.squareup.retrofit2:re]]></description><category></category></item><item><title><![CDATA[修改SwipeRefreshLayout源码实现自定义Header的下拉刷新控件]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/50149059</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/50149059</guid><author>gesanri</author><pubDate>Wed, 02 Dec 2015 15:35:05 +0800</pubDate><description><![CDATA[下拉刷新是应用中比较常见的功能，最开始下拉刷新主要局限于ListView，网上也有很多成熟的ListView的下拉刷新和上拉加载更多的控件，但如果我要下拉刷新的是WebView这种控件呢？网上也有一些，不过其实谷歌自己也提供了，谷歌提供的这种控件叫SwipeRefreshLayout，它可以实现WebView这类控件的下拉刷新，不过它有一个问题是，它的刷新的样式是固定的，就是在顶部有几个不同颜色的]]></description><category></category></item><item><title><![CDATA[仿微信随手指滑动页面菜单图标文字颜色渐变]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/49382463</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/49382463</guid><author>gesanri</author><pubDate>Sat, 24 Oct 2015 08:34:40 +0800</pubDate><description><![CDATA[微信大家肯定都用过，进入微信首页，下面有四个菜单，用户用手指滑动页面的时候，会发现下面的菜单图标还有文字的颜色会出现渐变，当然也可以直接用手点击某个菜单，不过这样就看不到渐变的效果，今天主要来说明下随手指滑动页面的菜单文字图标渐变效果的实现，先看效果图：




下面先说明一下设计思路，界面分为上下两个部分，上面的部分是一个ViewPager，它有4个界面，ViewPager随着手势滑动]]></description><category></category></item><item><title><![CDATA[Android中Font Awesome的使用]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/49300895</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/49300895</guid><author>gesanri</author><pubDate>Wed, 21 Oct 2015 10:23:20 +0800</pubDate><description><![CDATA[Android应用离不开应用图标，而Android的碎片化又导致应用的兼容性需要很多额外的处理，通常我们在开发应用用到图标时，需要用到多个drawable目录，根据不同的分辨率大小放入不同大小的图片到drawable-hdpi，drawable-mdpi等等目录，这不仅增加了APK的大小，而且碰到不标准的分辨率还是会出现拉升，变形等各种问题。


Font Awesome可以解决这个问题，F]]></description><category></category></item><item><title><![CDATA[RadioGroup中的RadioButton同时点击响应异常的解决]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/49278163</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/49278163</guid><author>gesanri</author><pubDate>Tue, 20 Oct 2015 15:44:51 +0800</pubDate><description><![CDATA[RadioGroup和RadioButton在APP开发中是经常使用的组件，常见的应用场景比如一排菜单，点击菜单跳转不同的界面，或者界面中的单选，比如选择性别。


使用起来也很简单，不过在实际开发过程中，我意外发现一个问题，看代码，这里为了简化问题，就用一个简单的选择性别为例：


public class MainActivity extends Activity {
 
    ]]></description><category></category></item><item><title><![CDATA[Android根据标签长度自动换行]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/48968803</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/48968803</guid><author>gesanri</author><pubDate>Thu, 08 Oct 2015 09:38:00 +0800</pubDate><description><![CDATA[我们在APP中经常看到这样的效果：


这是美团的热门搜索界面，里面罗列出了长度不等的标签，应用会根据标签的长度自动换行，比如第一行有3个标签，而第二行只有2个标签，这篇文章就来讲下如何实现这种效果，首先来看效果图，为了更好的展示不同长度和宽度时的显示效果，这里加了一个红色背景，实际使用时自己去掉即可
1. 当宽度为MATCH_PARENT，高度为WRAP_CONTENT时


2.]]></description><category></category></item><item><title><![CDATA[仿QQ拖动删除未读消息个数气泡之二]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/48490873</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/48490873</guid><author>gesanri</author><pubDate>Wed, 16 Sep 2015 10:52:36 +0800</pubDate><description><![CDATA[在仿QQ拖动删除未读消息个数气泡这篇文章中，模仿了QQ的删除未读消息气泡，不过也遗留了一个问题，当时为了让气泡能够在全屏范围内拖动，不能将其放在布局文件xml中，而是采用了在主布局加载完成后用addView方法动态加载气泡，这种方式不太好，因为它需要自己计算在全屏范围中，气泡放在什么地方，这需要参造物，而且如果把气泡放在listview中的话，也不可能给每个Item都去动态计算增加气泡，所以这种方]]></description><category></category></item><item><title><![CDATA[仿QQ拖动删除未读消息个数气泡]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/48373027</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/48373027</guid><author>gesanri</author><pubDate>Fri, 11 Sep 2015 15:02:13 +0800</pubDate><description><![CDATA[用过手机QQ的应该都看到过，如果有未读消息，在图标的右上角会有一个红色的圆形，里面有未读消息的个数，用手指拖动该数字，到一定距离后，松开手指，该红色的圆形会消失，表示这些消息标记为已读，如果手指只移动了较小的距离，松手会弹回去，先来看下效果图


左边的就是手指拖动的数字，右边的是原始的数字，下面来讲下实现过程：
首先明确两个名词，固定圆和移动圆，固定圆就是进入页面时就显示在界面上的那个数]]></description><category></category></item><item><title><![CDATA[Android数字纵向滚动]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/44495245</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/44495245</guid><author>gesanri</author><pubDate>Fri, 20 Mar 2015 17:53:51 +0800</pubDate><description><![CDATA[有的时候我们为了追求界面的美观性，希望将数字显示出来的时候有动画效果，比如界面显示315，我们可以让这几个数字自动纵向滚动，最后停留在315，这样显示出来效果更好一些。


要实现这种自动滚动的效果，我们首先想到的是自定义SurfaceView，在SurfaceView中启动一个线程来完成需要的工作。我这里自定义的SurfaceView有一个方法
setCircleAndNumber(in]]></description><category></category></item><item><title><![CDATA[Android手势密码]]></title><link>https://blog.youkuaiyun.com/gesanri/article/details/44275197</link><guid>https://blog.youkuaiyun.com/gesanri/article/details/44275197</guid><author>gesanri</author><pubDate>Sun, 15 Mar 2015 10:56:51 +0800</pubDate><description><![CDATA[项目中用到了手势密码的功能，之前没有做过，就研究了一下，写了一个例子，现分享出来供需要的人参考


说说基本思路，手势密码就是界面上有三排圆形，每排3个，通过手势来在圆形之间连线并记录，所以从模型的角度出发，我们首先定义一个圆形的类


public class Circle {
	private float x; // 圆心x坐标
	private float y; // 圆心y坐标]]></description><category></category></item></channel></rss>