<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yanjunhui2011的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yanjunhui2011</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yanjunhui2011]]></copyright><item><title><![CDATA[GitHub官网上的Android过滤文件]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/80784458</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/80784458</guid><author>yanjunhui2011</author><pubDate>Sat, 23 Jun 2018 16:17:05 +0800</pubDate><description><![CDATA[# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sd...]]></description><category></category></item><item><title><![CDATA[Android支持点击的TouchView(可拖动视图)]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/80031858</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/80031858</guid><author>yanjunhui2011</author><pubDate>Sat, 21 Apr 2018 17:54:49 +0800</pubDate><description><![CDATA[需求：1、一个可以拖动的view；2、该view可以通过setOnClickListener设置点击监听。解决思路：可拖动视图就必须重写onTouch事件，但是重写onTouch事件，点击事件肯定会被过滤。所以，需要我们自己再处理一下,把符合条件的onTouch事件转化成点击事件。需求和解决思路都出来了，那代码就很好实现了，我们先来看一下效果图。上最主要的代码：（一会还有DEMO）package ...]]></description><category></category></item><item><title><![CDATA[PullToRefreshScrollView 导致的 java.lang.IllegalArgumentException]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/79914819</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/79914819</guid><author>yanjunhui2011</author><pubDate>Thu, 12 Apr 2018 16:19:13 +0800</pubDate><description><![CDATA[日志信息java.lang.RuntimeException:Unableto start activity ComponentInfo {com.renfenqi.shop/com.renfenqi.shop.ui.main.MainActivity}: java.lang.IllegalArgumentException: Wrong state class, expecting View S...]]></description><category></category></item><item><title><![CDATA[Android从Context获取路径]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/79707792</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/79707792</guid><author>yanjunhui2011</author><pubDate>Tue, 27 Mar 2018 09:30:49 +0800</pubDate><description><![CDATA[源码：LogUtils.d(TAG, &quot;codePath == &quot; + context.getPackageCodePath());
LogUtils.d(TAG, &quot;resPath == &quot; + context.getPackageResourcePath());
LogUtils.d(TAG, &quot;cacheDir == &quot; + context.getCacheDir().getPath());...]]></description><category></category></item><item><title><![CDATA[Android实现ScrollView顶部布局上滑缩小，下滑恢复]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/78274608</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/78274608</guid><author>yanjunhui2011</author><pubDate>Wed, 18 Oct 2017 16:38:41 +0800</pubDate><description><![CDATA[废话不多说，先上效果图：




代码实现也比较简易，我写了一个类继承了ScrollView，并重写onTouchEvent以支持头部布局的变化。
当然，这么做需要手动关联一下 头布局、图片。


上核心代码：


package com.jh.customscroll;

import android.content.Context;
import android.uti]]></description><category></category></item><item><title><![CDATA[Android简单实现滑动删除Item]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/77884107</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/77884107</guid><author>yanjunhui2011</author><pubDate>Thu, 07 Sep 2017 17:20:33 +0800</pubDate><description><![CDATA[需求：如题，要做出类似QQ左滑删除的效果。
分析：Android中什么组件自带了水平滑动？ 我首当其冲就想到HorizontalScrollView。既然是简单实现，那我们何方不继承一下HorizontalScrollView呢？
接下来我们将HorizontalScrollView分成ItemView + 抽屉部分。
我们只需要监听用户的滑动事件，当用户滑动超过指定距离时，就移动Horiz]]></description><category></category></item><item><title><![CDATA[Android-TextView 默认字体大小]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/72818237</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/72818237</guid><author>yanjunhui2011</author><pubDate>Wed, 31 May 2017 10:32:09 +0800</pubDate><description><![CDATA[今天写代码的时候，突然来了兴致，TextView如果不指定textSize，那它的默认字体大小会是多少。




答案是15，我们可以清晰的看到源码中的textSize为15，单位是sp。]]></description><category></category></item><item><title><![CDATA[Android自定义标题栏ActionBar]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/64482976</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/64482976</guid><author>yanjunhui2011</author><pubDate>Tue, 21 Mar 2017 20:17:53 +0800</pubDate><description><![CDATA[在日常的工作中，ActionBar使用的频率非常的高，而系统自带的ActionBar捆绑的东西有太多，而上面多数的效果我们都用不到。
如果不用系统的ActionBar，我们该怎样把自定义ActionBar的工作做到最简化呢。
首先我们做一个基本的需求分析。




如上图所示，我们的ActionBar通常包括了：左菜单， 标题， 右菜单 。如果要再细分一下， 菜单 = （图标 + 文]]></description><category></category></item><item><title><![CDATA[Android自定义可拖动进度条]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/56016414</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/56016414</guid><author>yanjunhui2011</author><pubDate>Mon, 20 Feb 2017 17:32:28 +0800</pubDate><description><![CDATA[如题，看效果图：




该自定义组件的优势：
1、使用简单；
2、可随意改变圆点、直线的颜色和大小；


当然，也许你会吐槽，系统不是提供了 seekBar 吗，怎么不用 seekBar。
我想说，我写这个也是一时来了兴致，因为最近在研究自定义组件，根据自己项目里的需求，自己写出来的。虽然DEMO不是很高大上，但内心还是很欣喜的。所以，还希望嘴上留情。
还是那句话，你可以]]></description><category></category></item><item><title><![CDATA[Android沉浸式状态栏 + actionBar透明渐变 + scrollView顶部伸缩]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/55190456</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/55190456</guid><author>yanjunhui2011</author><pubDate>Wed, 15 Feb 2017 11:39:15 +0800</pubDate><description><![CDATA[闲话不多说，直接上图。






给大家讲讲我的编程思想吧。
第一部分：沉浸式状态栏（API-Level 19, Android4.4 KitKat 之后加入的东西），而且在Api-Level 21版本中新增了一个属性（下面会说到）。所以，style文件应该声明三份。






values

name="TranslucentTheme" parent="@]]></description><category></category></item><item><title><![CDATA[Manifest merger failed with multiple errors 的解决之道]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53994730</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53994730</guid><author>yanjunhui2011</author><pubDate>Tue, 03 Jan 2017 15:24:57 +0800</pubDate><description><![CDATA[总结原因如下：
1、AndroidManifest.xml 中存在相同命名的 Activity。




解决方法：删除其中一个。


2、 引入的三方包存在相同的label icon 等名字
解决方法：注册文件用tools 






3、依赖库的 sdk版本冲突
解决方法一（推荐）：修改targetSdkVersion 为一致或者不冲突 

解决方法二]]></description><category></category></item><item><title><![CDATA[自定义ScrollView实现Toolbar（标题栏）渐变]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53888745</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53888745</guid><author>yanjunhui2011</author><pubDate>Mon, 26 Dec 2016 20:12:35 +0800</pubDate><description><![CDATA[当下，越来越多的页面Toolbar都会随着界面的滑动呈现不同的透明状态。
如图：









要做成这样的效果有很多种，这篇文章就说一下我今天用到的一种（较为简洁，不喜勿喷）。

先把我的编程思想告诉各位，因为我觉得思想才是最重要的。



1、自定义一个类，继承自ScrollView，并重写它的 onScrollChanged 方法；

2、在 onS]]></description><category></category></item><item><title><![CDATA[Git过滤问题件（gitignore）下载地址]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53465009</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53465009</guid><author>yanjunhui2011</author><pubDate>Mon, 05 Dec 2016 14:30:20 +0800</pubDate><description><![CDATA[Git官方非常人性化的提供了各种过滤文件，下载地址：
https://github.com/github/gitignore/]]></description><category></category></item><item><title><![CDATA[碰到the authenticity of host github.com can't be established问题怎么解决]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53127992</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/53127992</guid><author>yanjunhui2011</author><pubDate>Fri, 11 Nov 2016 13:43:01 +0800</pubDate><description><![CDATA[验证github账号时，发生以下情况：




解决方法：
先输入 no
再输入  ssh-keyscan github.com >> ~/.ssh/known_hosts  


亲测有效。


以下是我成功后的截图。]]></description><category></category></item><item><title><![CDATA[ButterKnife  java.lang.ClassCastException: android.view.View cannot be cast to android.app.Activity]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52572501</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52572501</guid><author>yanjunhui2011</author><pubDate>Sun, 18 Sep 2016 10:54:51 +0800</pubDate><description><![CDATA[今天使用ButterKnife报以下错误：
                                        Caused by: java.lang.ClassCastException: android.view.View cannot be cast to android.app.Activity
                                       ]]></description><category></category></item><item><title><![CDATA[Android之ViewPager.getChildCount()无限自增问题解析]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52514188</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52514188</guid><author>yanjunhui2011</author><pubDate>Mon, 12 Sep 2016 16:04:49 +0800</pubDate><description><![CDATA[在最近的一次工作中，要做一个广告展示栏。果断使用ViewPager来实现，但是，在实现玩效果之后，打印日志发现一个巨大的问题。ViewPager在多次划动后 ViewPager.getChildCount()，竟然会无限自增。


好在老夫花了2个小时研究了一下ViewGroup的源码，总算把问题解决了。接下来进入正题。


首先：
ViewPager是ViewGroup的子类，ge]]></description><category></category></item><item><title><![CDATA[Android完美检测键盘弹出/收起]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52472294</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52472294</guid><author>yanjunhui2011</author><pubDate>Thu, 08 Sep 2016 15:51:16 +0800</pubDate><description><![CDATA[代码很简单，可以直接复制粘贴。原理请参照：http://blog.youkuaiyun.com/xiaole0313/article/details/51537809
    private void setListenerToRootView() {
        final View rootView = getWindow().getDecorView().findViewById(android.]]></description><category></category></item><item><title><![CDATA[Android底部弹框的两种实现（总结）]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52329404</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52329404</guid><author>yanjunhui2011</author><pubDate>Fri, 26 Aug 2016 16:16:23 +0800</pubDate><description><![CDATA[在Android应用上，为了美观，和与IOS的统一性，众多的APP都模仿苹果使用底部弹出Dialog。


本人结合项目中使用过的，好用的实现方式分为两种：
1、自定义Dialog；
2、属性为 parent="android:Theme.Dialog" 
 的Activity;
两种方法的适用场景都很广泛，而且很适合直接复用（这也是为什么不用PopupWindow的原因）。

]]></description><category></category></item><item><title><![CDATA[Android碎片化问题 java.lang.NoClassDefFoundError: android/os/PersistableBundle 之解决方案]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52251717</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52251717</guid><author>yanjunhui2011</author><pubDate>Fri, 19 Aug 2016 16:00:27 +0800</pubDate><description><![CDATA[今天开发的时候，测试提交给我一个问题，我怎么测都测不出来，可在测试那一点就奔溃。
无奈，把测试的手机那过来，果然奔溃。打印日志一看，得到日志如下：
 W/System.err: java.lang.NoClassDefFoundError: android/os/PersistableBundle
 W/System.err:     at java.lang.Class.getDeclare]]></description><category></category></item><item><title><![CDATA[Android官方 Sample-Demo地址]]></title><link>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52239177</link><guid>https://blog.youkuaiyun.com/yanjunhui2011/article/details/52239177</guid><author>yanjunhui2011</author><pubDate>Thu, 18 Aug 2016 11:23:21 +0800</pubDate><description><![CDATA[Android官方 Sample-Demo地址：（需要翻墙）

https://developer.android.com/samples/Interpolator/index.html


GitHub上地址：（不需要翻墙）
https://github.com/googlesamples]]></description><category></category></item></channel></rss>