<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[彭文涛的博客]]></title><description><![CDATA[不积跬步,无以至千里]]></description><link>https://blog.youkuaiyun.com/rentalphang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rentalphang]]></copyright><item><title><![CDATA[Error:warning: Ignoring InnerClasses attribute for an anonymous inner class]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/53178979</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/53178979</guid><author>rentalphang</author><pubDate>Tue, 15 Nov 2016 22:33:55 +0800</pubDate><description><![CDATA[今天项目发布时遇到了这个问题，在低版本设备上面死活发布不上去，还有打包也打不成功，折腾了好长一段时间，网上大部分给出的

解决方案都是说

在工程的混淆配置文件 proguard-rules.pro 中加入下面这句代码即可：
-keepattributes EnclosingMethod


但是尝试之后还是不行，发布不了，最后使用这种方式解决了，添加之后可以正常发布

在主项]]></description><category></category></item><item><title><![CDATA[百度定位SDK只定位一次以及系统没有出现位置服务图标的解决]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/52801755</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/52801755</guid><author>rentalphang</author><pubDate>Wed, 12 Oct 2016 22:49:46 +0800</pubDate><description><![CDATA[这是个巨大的坑，因为官方文档没说要在Mainfest里面声明一个服务，导致我的定位一直就只有一次，而且任务栏也没有出现定位的图标。后来发现原来要在Mainfest文件加入以下声明:<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote"></service>]]></description><category></category></item><item><title><![CDATA[在MapView上面添加浮动控件的方法]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/52081423</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/52081423</guid><author>rentalphang</author><pubDate>Sun, 31 Jul 2016 22:43:25 +0800</pubDate><description><![CDATA[最近在做一个跑步的APP，需要用到百度地图的SDK。然后在写UI布局的时候需要在地图上面浮动显示控件按钮。
用了很多方法，也不如意，最后发现原来直接用RelativeLayout就可以做出这种效果。




代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          ]]></description><category></category></item><item><title><![CDATA[解决百度地图Fragment切换黑屏问题]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/52076330</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/52076330</guid><author>rentalphang</author><pubDate>Sun, 31 Jul 2016 01:01:23 +0800</pubDate><description><![CDATA[今天在用TabHost+Fragment切换带有百度地图的TAB时会有黑屏的状况，在一开始网上找了很多方法都解决不了，这个问题好像已经由来已久了。
但是在官方论坛找到了解决办法，就是要把mapview改成TextureMapView，问题就解决了。]]></description><category></category></item><item><title><![CDATA[Error: Execution failed for task ':app:clean'. Unable to delete file问题解决]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/52074637</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/52074637</guid><author>rentalphang</author><pubDate>Sat, 30 Jul 2016 20:07:54 +0800</pubDate><description><![CDATA[Error:Execution failed for task ':app:packageDebug'.
> Failed to create 'D:\andriod\RunJ\app\build\outputs\apk\app-debug-unaligned.apks': 拒绝访问。
Error: Execution failed for task ':app:clean'. Unable ]]></description><category></category></item><item><title><![CDATA[Android-Parcelable理解与使用(对象序列化)]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51925684</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51925684</guid><author>rentalphang</author><pubDate>Sat, 16 Jul 2016 18:25:19 +0800</pubDate><description><![CDATA[http://my.oschina.net/zhoulc/blog/172163

parcel定义介绍： 

   Android提供了一种新的类型：parcel（英文解释：包裹，小包），本类用来封装数据的容器，封装后的数据可以通过Intent或IPC传递，除了基本类型外，只有实现了Parcelable接口的类才能放入parcel中。

    parcel一般都用在Binder通信]]></description><category></category></item><item><title><![CDATA[getHeight()和getMeasuredHeight()的区别]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51779354</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51779354</guid><author>rentalphang</author><pubDate>Tue, 28 Jun 2016 22:32:25 +0800</pubDate><description><![CDATA[getMeasuredHeight()获取测量完的高度，只要在onMeasure方法执行完，就可以它获取到宽高，在自定义控件内部多使用这个使用view.measure(0,0)方法可以主动通知系统去测量，然后就可以直接使用它获取宽高。getHeight()必须在onLayout方法执行完后，才能获得宽高。 
             view.getViewTreeObserver().addOnG]]></description><category></category></item><item><title><![CDATA[Android大图轮播效果的实现-代码逻辑]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51771213</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51771213</guid><author>rentalphang</author><pubDate>Mon, 27 Jun 2016 21:16:41 +0800</pubDate><description><![CDATA[这一篇主要是接着上一篇来讲的，上一篇主要说的是从界面层面上的实现，这一篇是从业务逻辑来说的。


1.给viewpager设置adapter
	class MyPagerAdapter extends PagerAdapter{
		
		/**
		 * 返回多少page
		 */
		@Override
		public int getCount() {
			return 100;]]></description><category></category></item><item><title><![CDATA[练习Android大图轮播效果的实现-大致布局]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51763448</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51763448</guid><author>rentalphang</author><pubDate>Sun, 26 Jun 2016 18:22:44 +0800</pubDate><description><![CDATA[这一次我主要想学习动手实现一下平常APP都很常见的大图轮播效果（
如下面红框所示）。但是下面这个是没有动态的文字的，我们这次的是有动态的文字改变的。








实现的步骤大概是这些：
1.显示大图轮播的基本架构（主要用viewpager）
2.无限循环效果的实现
3.自动循环的实现


首先实现第一步，就是把大图轮播的框架搭建出来
这里主要用到的是viewp]]></description><category></category></item><item><title><![CDATA[ListView使用技巧小结(1)]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51759923</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51759923</guid><author>rentalphang</author><pubDate>Sat, 25 Jun 2016 20:33:09 +0800</pubDate><description><![CDATA[ListView使用技巧小结(1)1.设置不同item间的分割线安卓提供了divider和dividerHeight两个属性去控制ListView之间分割线和它的高度。（分割线除了可以设置成为一个颜色之外，还可以设置图片资源）android:divider = "@android:color/balck"
android:dividerHeight = "11dp"
2.隐藏listview的滚动条]]></description><category></category></item><item><title><![CDATA[android MotionEvent中getX()和getRawX()的区别]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51737602</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51737602</guid><author>rentalphang</author><pubDate>Wed, 22 Jun 2016 22:55:57 +0800</pubDate><description><![CDATA[public class Res extends Activity implements View.OnTouchListener {    
    
    Button btn = null;    
    int x = 0;    
    int y = 0;    
    int rawx = 0;    
    int rawy = 0;    
    
 ]]></description><category></category></item><item><title><![CDATA[View和ViewGroup的区别以及自定义控件步骤小结]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51737523</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51737523</guid><author>rentalphang</author><pubDate>Wed, 22 Jun 2016 22:45:01 +0800</pubDate><description><![CDATA[1.他们都需要进行测量操作
2.ViewGroup主要是控制子view如何摆放，所以必须实现onLayout

  View没有子view，所以不需要onLayout方法，但是必须实现onDraw


自定义控件步骤：
测量：onMeasure  设置自己显示在屏幕上的宽高
布局：onLayout   设置自己显示在屏幕上的位置(只有在自定义ViewGroup中才用到)
绘制：o]]></description><category></category></item><item><title><![CDATA[Android系统原生的旋转和位置动画并没有真正改变view的位置]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51728126</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51728126</guid><author>rentalphang</author><pubDate>Tue, 21 Jun 2016 16:18:07 +0800</pubDate><description><![CDATA[今天做一个悬浮菜单的时候，发现一个奇怪的BUG，就是当我把我的悬浮菜单用旋转动画旋转出去的时候，虽然在屏幕上消失了，但是按相应的位置还是会有点击事件。然后我查了一下，发现原来系统原生的旋转和位置动画是不会改变view的位置。我想应该是由于APP上的布局太过复杂了，一个view位置的改变很容易牵一发而动全身。毕竟动画效果很多情况上只需要视觉上实现效果就好。所以只能通过setEnable()方法去禁用]]></description><category></category></item><item><title><![CDATA[android基于JSON的短信备份功能]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51679946</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51679946</guid><author>rentalphang</author><pubDate>Wed, 15 Jun 2016 11:28:21 +0800</pubDate><description><![CDATA[public static class Data{
        int progress;
    }
    /***
     * 短信备份
     * **/

    public static void backUpSmsJson(Activity activity, final BackupProgress backupProgress){
        Uri uri = U]]></description><category></category></item><item><title><![CDATA[用JSON备份还原短信时特殊字符的处理]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51628689</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51628689</guid><author>rentalphang</author><pubDate>Fri, 10 Jun 2016 22:46:16 +0800</pubDate><description><![CDATA[今天捣鼓一个短信备份还原的功能，用json格式来做。但是由于短信都是各式各样的字符组成。所以要是里面有和json一样的格式特殊字符的时候，就会出错导致恢复不了。
就想下面那样：

要是body那一部分，也就是我们短信的内容里面包含着json的特殊字符即（" , [ ] { }）,的时候就会导致短信恢复的时候解析出错。


虽然其实发生这种事情的概率挺低的，但是只要存在着一个符号就会导致]]></description><category></category></item><item><title><![CDATA[Android 更新UI的两种方法——handler和runOnUiThread()]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51620062</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51620062</guid><author>rentalphang</author><pubDate>Thu, 09 Jun 2016 11:03:00 +0800</pubDate><description><![CDATA[Android 更新UI的两种方法——handler和runOnUiThread()

在Android开发过程中，常需要更新界面的UI。而更新UI是要主线程来更新的，即UI线程更新。如果在主线线程之外的线程中直接更新页面显示常会报错。抛出异常：android.view.ViewRoot$CalledFromWrongThreadException: Only the original thr]]></description><category></category></item><item><title><![CDATA[ListView.setOnScrollListener(android.widget.AbsListView$OnScrollListener)' on a null object referenc]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51602165</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51602165</guid><author>rentalphang</author><pubDate>Tue, 07 Jun 2016 13:15:53 +0800</pubDate><description><![CDATA[今天为试着做一个软件管理的app，然后就为listview加入了OnScrollListener，发现会提示如下错误：



                                                                          java.lang.RuntimeException: Unable to start activity Compon]]></description><category></category></item><item><title><![CDATA[Android利用Animation.RELATIVE_TO_SELF做出个性化的动画]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51518528</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51518528</guid><author>rentalphang</author><pubDate>Fri, 27 May 2016 17:40:03 +0800</pubDate><description><![CDATA[在Android开发中，Animation是用来给控件制作效果的。大多数的控件都可以用这个类，这个类包含了4种基本动作，分别为移动，旋转，淡入淡出，缩放。

使用Animation的两种方式：

方式一：在代码中创建、设置以及启动动画(移动TranslateAnimation/旋转RotateAnimation/淡入淡出AlphaAnimation/缩放ScaleAnimation)，这样]]></description><category></category></item><item><title><![CDATA[在Android Studio进行测试]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51511280</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51511280</guid><author>rentalphang</author><pubDate>Thu, 26 May 2016 23:20:03 +0800</pubDate><description><![CDATA[在Eclipse里面测试很麻烦，又要新建一个项目，又要在mianfest文件添加测试框架和依赖库。
现在在android studio里面要测试就不用那么麻烦，要是你是一开始就是在AS新建的工程，它会自动添加测试的文件夹。


要是我们从eclipse导入工程进AS它是不会新建这样的一个文件夹的，但是我们只要跟着上面一样在导入的工程里面新建这些文件夹也就可以了
就是在SRC文件夹下面新建]]></description><category></category></item><item><title><![CDATA[跟谷歌学一个多次点击事件的逻辑处理]]></title><link>https://blog.youkuaiyun.com/rentalphang/article/details/51459213</link><guid>https://blog.youkuaiyun.com/rentalphang/article/details/51459213</guid><author>rentalphang</author><pubDate>Fri, 20 May 2016 10:34:00 +0800</pubDate><description><![CDATA[Android每一个版本，谷歌都会给他弄一个彩蛋。怎么弄呢？只要我们在设置里面狂点版本号就行了。






       






然后查看源码：






其实这个功能的逻辑主要就是几行代码，下面是根据上面写的一个四击事件：
	long[] mHits = new long[4];// 数组长度表示要点击的次数

	public void on]]></description><category></category></item></channel></rss>