<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ HarryXR]]></title><description><![CDATA[专注于移动开发的老猿]]></description><link>https://blog.youkuaiyun.com/u014053926</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014053926]]></copyright><item><title><![CDATA[ViewPager 禁止滑动]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/81543706</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/81543706</guid><author>u014053926</author><pubDate>Thu, 09 Aug 2018 20:36:39 +0800</pubDate><description><![CDATA[看到网上有千篇一律的解决方法，我亲测总结了两种方法



  public class TestViewpager extends ViewPager {    
        public boolean isCanScroll=true;   
         public TestViewpager(Context context) {      
          this(cont...]]></description><category></category></item><item><title><![CDATA[android 抛物线下载动画]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/53391601</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/53391601</guid><author>u014053926</author><pubDate>Tue, 29 Nov 2016 13:29:27 +0800</pubDate><description><![CDATA[下载动画经常出现在下载需求多的app中，比如游戏下载平台，应用市场。。。
实现
private void startAnim() {   
    //以bitmap创建new ImageView
    iv.setDrawingCacheEnabled(true);  
    Bitmap bitmap = iv.getDrawingCache();   
    ImageView logo]]></description><category></category></item><item><title><![CDATA[Android 自定义进度条]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52845903</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52845903</guid><author>u014053926</author><pubDate>Tue, 18 Oct 2016 09:11:34 +0800</pubDate><description><![CDATA[github：https://github.com/HarryXR/android
水平进度条 
测量
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    
 int textHeight = ViewUtils.getTextHeight(mAlertTextPaint);   
 int heigh]]></description><category></category></item><item><title><![CDATA[Android 视频播放]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52757562</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52757562</guid><author>u014053926</author><pubDate>Sat, 08 Oct 2016 16:13:51 +0800</pubDate><description><![CDATA[android视频播放现在大多数使用IjkPlayer,不过此库使用难度大经过实际使用，推荐JieCaoVideoPlayer开源库，简单易用
效果使用
dependencies {
    compile 'fm.jiecao:jiecaovideoplayer:4.7.0'
}布局 layout:<fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard]]></description><category></category></item><item><title><![CDATA[Rxjava + Retrofit2 多图上传]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52688977</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52688977</guid><author>u014053926</author><pubDate>Wed, 28 Sep 2016 11:23:43 +0800</pubDate><description><![CDATA[本文图片上传感觉比网上找的详细很多，不信亲测项目地址：https://github.com/HarryXR/RetrofitRxjavaDemo只展示了Get请求因为post 上传图片用的公司的Url，不便展示，但已封装多图上传，修改baseurl 和参数即可使用
说说多图上传
使用MultipartBody,封装多张图片以及所需参数
    @POST("face")
    Observ]]></description><category></category></item><item><title><![CDATA[Android 面试---国内一线互联网公司内部面试题库]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52677800</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52677800</guid><author>u014053926</author><pubDate>Tue, 27 Sep 2016 09:30:40 +0800</pubDate><description><![CDATA[转载自：GitHub: https://github.com/JackyAndroid优快云: http://blog.youkuaiyun.com/rain_butterfly国内一线互联网公司内部面试题库以下面试题来自于百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐内部题库熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。欢迎一线公司员工提交内部面试题库，欢迎star。目录
java基础]]></description><category></category></item><item><title><![CDATA[Retrofit2 封装统一请求参数]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52599136</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52599136</guid><author>u014053926</author><pubDate>Tue, 20 Sep 2016 19:29:55 +0800</pubDate><description><![CDATA[Android http请求中，通常每个request都有相同的参数，比如，token，uid等等，如何能一次性封装这些重复参数呢本文的目的就是解决重复封装的梗，而解决这个问题的主要助手就是Interceptor(拦截器)
自定义Interceptor
public class BaseInterceptor implements Interceptor {   
 @Override    
pu]]></description><category></category></item><item><title><![CDATA[Android Studio 打包jar,aar]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52399463</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52399463</guid><author>u014053926</author><pubDate>Thu, 01 Sep 2016 14:33:49 +0800</pubDate><description><![CDATA[1.Jar &Aarjar包与aar包的区别jar是java字节码文件（class文件）的归档文件，其不包含android中的资源文件等信息； 
aar是android中特有的归档文件，既包含字节码文件也包含android的资源文件等,比如一些drawable文件、xml资源文件之类的；2.打Jar包module编译完成之后 ，module中自动的创建了相关的jar文件第一种方式：把class.ja]]></description><category></category></item><item><title><![CDATA[【转】JNI官方规范中文版]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52298836</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52298836</guid><author>u014053926</author><pubDate>Wed, 24 Aug 2016 11:27:45 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/rainteen/article/details/43376337]]></description><category></category></item><item><title><![CDATA[ViewPager 禁止滑动]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52230540</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52230540</guid><author>u014053926</author><pubDate>Wed, 17 Aug 2016 14:21:03 +0800</pubDate><description><![CDATA[看到网上有千篇一律的解决方法，我亲测总结了两种方法public class TestViewpager extends ViewPager {    
        public boolean isCanScroll=true;   
         public TestViewpager(Context context) {      
          this(context,nul]]></description><category></category></item><item><title><![CDATA[Android Studio 设置文档注释快捷键]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52220208</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52220208</guid><author>u014053926</author><pubDate>Tue, 16 Aug 2016 13:57:37 +0800</pubDate><description><![CDATA[注意：我设置的是 / Windows下AS设置文档注释快捷键
Settings->Keymap,找到快捷键设置 
 
2.右击 Fix doc comment->ShortCut，输入 /,ok即可 
 
3.效果验证，将鼠标放到方法体前面或方法内，按下 /就有文档注释出现]]></description><category></category></item><item><title><![CDATA[Handler,Looper,MessageQueue原理分析]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52181760</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52181760</guid><author>u014053926</author><pubDate>Thu, 11 Aug 2016 13:24:21 +0800</pubDate><description><![CDATA[Handler机制在android开发中经常使用，一直没搞明白Handler,Looper,MessageQueue它们之间的关系，此次就从源码的角度分析一下1. 简述Looper负责创建MessageQueue，然后进入无限循环体中不断从MessageQueue取出消息，触发消息的分发处理，而Handler负责发送消息2.源码分析
Looper 
主要就是prepare和loop方法
prepar]]></description><category></category></item><item><title><![CDATA[Android AlertDialog 无法弹出输入法]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52054755</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52054755</guid><author>u014053926</author><pubDate>Thu, 28 Jul 2016 14:06:37 +0800</pubDate><description><![CDATA[可能很多人都遇到这种问题，点击dialog的输入框无法弹出输入法，我就说说自己的解决方法
先说说我的dialog使用方法
 final AlertDialog dialog = new AlertDialog.Builder(this).create();
        dialog.show();
        dialog.setCanceledOnTouchOutside(false);]]></description><category></category></item><item><title><![CDATA[Android坐标详谈]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52053277</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52053277</guid><author>u014053926</author><pubDate>Thu, 28 Jul 2016 11:03:58 +0800</pubDate><description><![CDATA[一.android 坐标分为两种，android坐标系和视图坐标系，搞清楚这两种的区别，再也不用担心自定义View了Android坐标系
一张图搞懂android坐标系： 
 
Android坐标系以屏幕的坐上角顶掉为原点(0,0),从该点向右为X轴正方向，向下为Y轴正方向.
视图坐标系
贴图说明： 视图坐标系是以父视图的左上角为坐标原点的。相应的原点向右为x轴正方向，原点向下为y轴正方向。二.获取]]></description><category></category></item><item><title><![CDATA[Android Studio下NDK开发]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/52035175</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/52035175</guid><author>u014053926</author><pubDate>Tue, 26 Jul 2016 13:59:55 +0800</pubDate><description><![CDATA[Android Studio下NDK开发AS下NDK开发步骤：
配置NDK
生成class文件
生成.h头文件
*gradle配置
测试
配置NDK
在这里配置好下载的NDK,并在local.properties生成ndk.dir=E:\\Tools\\android-sdk-windows\\ndk-bundle
生成class文件新建JNITest.java实现native方法public cl]]></description><category></category></item><item><title><![CDATA[ListView之getCheckedItemIds()简谈]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/51281382</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/51281382</guid><author>u014053926</author><pubDate>Fri, 29 Apr 2016 14:02:27 +0800</pubDate><description><![CDATA[android新的API中已弃用getCheckItemIds()，而使用getCheckedItemIds()，来获取ListView 被选中的Item.
  说说使用方法吧 
  1.使用方式跟以前的一样 long[] pos = mListView.getCheckedItemIds();
  
  2.pos值 
  就是ListView选中的position collection]]></description><category></category></item><item><title><![CDATA[Volley XML请求XmLRequest]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/51209025</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/51209025</guid><author>u014053926</author><pubDate>Thu, 21 Apr 2016 14:51:45 +0800</pubDate><description><![CDATA[Demo地址：https://github.com/HarryXR/VolleyXmlDemo 
一：XmlRequest.javapublic class XMLRequest extends Request<XmlPullParser> {private final Listener<XmlPullParser> mListener;public XMLRequest(int method, S]]></description><category></category></item><item><title><![CDATA[Glide转化圆形图片的坑]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/51014801</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/51014801</guid><author>u014053926</author><pubDate>Wed, 30 Mar 2016 15:09:12 +0800</pubDate><description><![CDATA[昨天写了Glide转化圆形图片的ImageView，然后就把我坑了好久。。。。。。。
1.首先导包


compile 'com.github.bumptech.glide:glide:3.6.1'



2.开始实现



查看文档发现实现圆形图片都是重写Glide的BitmapTransformation类



使用方式：
   Glide.with(con]]></description><category></category></item><item><title><![CDATA[OkHttp使用post请求注意点]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/51000659</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/51000659</guid><author>u014053926</author><pubDate>Mon, 28 Mar 2016 19:52:09 +0800</pubDate><description><![CDATA[简单谈谈个人在使用OkHttp过程中发现的注意点：1.提交键值对OkHttpClient client = new OkHttpClient();
String post(String url, String json) throws IOException { RequestBody formBody = new FormEncodingBuilder()
    .add("platform",]]></description><category></category></item><item><title><![CDATA[Java 里氏替换原则]]></title><link>https://blog.youkuaiyun.com/u014053926/article/details/50980023</link><guid>https://blog.youkuaiyun.com/u014053926/article/details/50980023</guid><author>u014053926</author><pubDate>Fri, 25 Mar 2016 14:56:24 +0800</pubDate><description><![CDATA[-
里氏代换原则（ Liskov Substitution Principle）是指：一个软件实体如果使用的是基类的话， 那么也一定适用于其子类， 而且它根本觉察不错使用的是基类对象还是子类对象； 反过来的代换这是不成立的， 即： 如果一个软件实体使用一个类的子类对象，那么它不能够适用于基类对象。
 - 里氏代换原则是实现开放封闭原则的具体规范。这是因为： 实现开放封闭原则的关键是进行抽象，而]]></description><category></category></item></channel></rss>