<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[practicemperfect的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/practicemperfect</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; practicemperfect]]></copyright><item><title><![CDATA[fastjson解析、自定义seekBar的onTouchEvent、ScrollView或者ListView的拖拽阴影笔记]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/52414610</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/52414610</guid><author>practicemperfect</author><pubDate>Fri, 02 Sep 2016 15:52:48 +0800</pubDate><description><![CDATA[1、我们平时都喜欢用com.alibaba.fastjson将网络获取的json数据解析成实体类，
并且通过http://www.bejson.com/网站的“JSON生成Java实体类”功能很容易得到实体类，步骤如下。
AAA a= JSON.parseObject(jsonData, AAA.class);//json返回数据为jsonobject
                Lis]]></description><category></category></item><item><title><![CDATA[listview添加顶部分割线，报错ClassCastException HeaderViewListAdapter，，RecyclerView]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/52414044</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/52414044</guid><author>practicemperfect</author><pubDate>Fri, 02 Sep 2016 15:03:17 +0800</pubDate><description><![CDATA[listview添加顶部分割线：


ViewStub viewStub;
        if (viewStub==null) {
            viewStub= new ViewStub(this);
            //如果不判断viewStub==null，下一个界面返回时总是重复添加头，或者在oncreate里添加
            listvi]]></description><category></category></item><item><title><![CDATA[Android访问webservice服务器的封装类]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/52413925</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/52413925</guid><author>practicemperfect</author><pubDate>Fri, 02 Sep 2016 14:51:46 +0800</pubDate><description><![CDATA[前提是导入jar包ksoap2-android-assembly-2.4-jar-with-dependencies.jar
封装好的类如下：
可以直接在主线程调用callWebService()方法访问：

如果服务器做一点调整，那么这里也会有几步需要调整一下：


import android.os.Handler;
import android.os.Message;
im]]></description><category></category></item><item><title><![CDATA[Android客户端访问使用Jersey开发RESTful的webservice服务器]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/52413596</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/52413596</guid><author>practicemperfect</author><pubDate>Fri, 02 Sep 2016 14:20:55 +0800</pubDate><description><![CDATA[Java程序访问服务器（使用Jersey开发RESTful的webservice服务器）的方法：
String url = "http://.../hotel_robot/ws/restful/...";
ClientConfig cc = new DefaultClientConfig();
Client c = Client.create(cc);
MultivaluedMap par]]></description><category></category></item><item><title><![CDATA[运行按钮为灰色,获得控件宽高]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/52290432</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/52290432</guid><author>practicemperfect</author><pubDate>Tue, 23 Aug 2016 14:12:04 +0800</pubDate><description><![CDATA[笔记：
1.如果android studio项目的运行按钮为灰色，可以rebuild一下或者clean一下，再不行，重启studio。
2.在oncreate里获得控件宽高的方法：
rl.post(new Runnable() {
    @Override
    public void run() {
        rlWidth=rl.getWidth();
        rlHe]]></description><category></category></item><item><title><![CDATA[解决在onCreate()过程中获取View的width和Height为0的4种方法]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/52228634</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/52228634</guid><author>practicemperfect</author><pubDate>Wed, 17 Aug 2016 10:35:42 +0800</pubDate><description><![CDATA[很经常当我们动态创建某些View时，需要通过获取他们的width和height来确定别的view的布局，但是在onCreate()获取view的width和height会得到0.view.getWidth()和view.getHeight()为0的根本原因是控件还没有完成绘制，你必须等待系统将绘制完View时，才能获得。这种情况当你需要使用动态布局（使用wrap_content或match_par]]></description><category></category></item><item><title><![CDATA[Android-onInterceptTouchEvent()和onTouchEvent()总结]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/51888141</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/51888141</guid><author>practicemperfect</author><pubDate>Tue, 12 Jul 2016 13:13:51 +0800</pubDate><description><![CDATA[老实说，这两个小东东实在是太麻烦了，很不好懂，我自己那api文档都头晕，在网上找到很多资料，才知道是怎么回事，这里总结一下，记住这个原则就会很清楚了：

1、onInterceptTouchEvent()是用于处理事件（类似于预处理，当然也可以不处理）并改变事件的传递方向，也就是决定是否允许Touch事件继续向下（子控件）传递，一但返回True（代表事件在当前的viewGroup中会被处理），]]></description><category></category></item><item><title><![CDATA[基于 AVOS Cloud 的 Android 应用程序快速开发简介]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/51564652</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/51564652</guid><author>practicemperfect</author><pubDate>Thu, 02 Jun 2016 10:46:47 +0800</pubDate><description><![CDATA[Android 开发指南
https://cn.avoscloud.com/docs/android_guide.html]]></description><category></category></item><item><title><![CDATA[onCreate（）方法中的参数Bundle savedInstanceState 的意义用法]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/51543744</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/51543744</guid><author>practicemperfect</author><pubDate>Tue, 31 May 2016 10:30:43 +0800</pubDate><description><![CDATA[Activity中有一个名称叫onCreate的方法。该方法是在Activity创建时被系统调用，是一个Activity生命周期的开始。可是有一点容易被忽视，就是onCreate方法的参数saveInsanceState。一般的程序开发中，很少用到这个参数。
       onCreate方法的完整定义如下:
      public void onCreate(Bundle saveInsa]]></description><category></category></item><item><title><![CDATA[win7下安装sourcetree]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/51537807</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/51537807</guid><author>practicemperfect</author><pubDate>Mon, 30 May 2016 14:44:04 +0800</pubDate><description><![CDATA[1.安装git,百度搜索就行

2.安装sourcetree 自行找链接

3.在git bash 下生成客户端 ssh-keygen -t rsa

4.然后将生成的C:\Users\jiangtong\.ssh\id_rsa.pub 文件上传到服务器keydir目录(交给git管理人员就行)

5.确保sourcetree ，工具-选项,弹出选项卡第三个git选项，使用系统gi]]></description><category></category></item><item><title><![CDATA[Android与服务器端数据交互（基于SOAP协议整合android+webservice）]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/51441172</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/51441172</guid><author>practicemperfect</author><pubDate>Wed, 18 May 2016 09:19:59 +0800</pubDate><description><![CDATA[Android与服务器端数据交互（基于SOAP协议整合android+webservice）




上一节中我们通过http协议，采用HttpClient向服务器端action请求数据。当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据，
﻿那么什么是webService呢？，它是一种基于SAOP协议的远程调用标准，通过webservice可以将不]]></description><category></category></item><item><title><![CDATA[Android Studio导入SlidingMenu类库]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/51372679</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/51372679</guid><author>practicemperfect</author><pubDate>Wed, 11 May 2016 11:00:48 +0800</pubDate><description><![CDATA[1. 先来碎碎念～

导入类库实现SlidingMenu 
视频里是用eclipse导入，下面用Android Studio导入SlidingMenu类库



2. 实现的功能

就是最基本的功能，右划或者菜单键就打开SlidingMenu像下图酱婶儿～ 




3. 导入类库的过程

视频里面导入了SlidingMenu和ActionBarSherlock两个]]></description><category></category></item><item><title><![CDATA[[Android Studio] Android studio 多渠道打包(超简洁版)]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/51158811</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/51158811</guid><author>practicemperfect</author><pubDate>Fri, 15 Apr 2016 09:16:56 +0800</pubDate><description><![CDATA[最近一直用android studio 进行开发，在开发和发版的时候，遇到一个多渠道打包的问题，由于公司里是有七个渠道的包进行分发，由于每次去AndroidManifest.xml修改渠道的值，甚是麻烦。。。

最后去google了一番，发现有些方法，是在gradle文件里切换各种不同的AndroidManifest.xml文件，感觉这样也太麻烦些了。。。后面搜索了些，发些大家写得都差不多，发]]></description><category></category></item><item><title><![CDATA[Android studio如何导入library及jar包和so包]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/50964006</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/50964006</guid><author>practicemperfect</author><pubDate>Wed, 23 Mar 2016 16:00:02 +0800</pubDate><description><![CDATA[在Android Studio里导入jar包及so包步骤如下：




　　1、在src同一级目录下建一个libs的文件夹




　　2、将jar包或so包拷贝到新建的libs文件夹下




　　3、jar包的话，右击选择add as library




　　4、如果是so包的话，找到跟src同级目录下的build.gradle ，添加如下标红信息，]]></description><category></category></item><item><title><![CDATA[android中跨进程通讯的4种方式]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/50905910</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/50905910</guid><author>practicemperfect</author><pubDate>Wed, 16 Mar 2016 16:04:43 +0800</pubDate><description><![CDATA[转自：http://www. androidsdn.com/article/show/137

由于android系统中应用程序之间不能共享内存。因此，在不同应用程序之间交互数据（跨进程通讯）就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件：Activity、Content Provider、Broadcast和]]></description><category></category></item><item><title><![CDATA[Android 项目中文件夹作用(res文件夹详细介绍)]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/50883815</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/50883815</guid><author>practicemperfect</author><pubDate>Mon, 14 Mar 2016 09:34:35 +0800</pubDate><description><![CDATA[1. src：存放所有的*.java源程序。

2. gen：为ADT插件自动生成的代码文件保存路径，里面的R.java将保存所有的资源ID。

3. assets：可以存放项目一些较大的资源文件，例如：图片、音乐、字体等。

4. res：可以存放项目中所有的资源文件，例如：图片（*.png、*.jpg）、文本等。

5. res/drawable-hdpi：保存高分辨率图片资源]]></description><category></category></item><item><title><![CDATA[Activity之AppCompatActivity与toolbar的结合]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/50883776</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/50883776</guid><author>practicemperfect</author><pubDate>Mon, 14 Mar 2016 09:29:49 +0800</pubDate><description><![CDATA[对于技术类的博客，我们永远追寻最新API脚步，在API22之前我们使用标题栏基本都是在ActionBarActivity的Activity中处理的，而API22之后，谷歌遗弃了ActionBarActivity，推荐我们也可以说是强制我们使用AppCompatActivity。

然而ActionBarActivity与AppCompatActivity的使用大同小异，下面我们将介绍最新的Ac]]></description><category></category></item><item><title><![CDATA[四种方案解决ScrollView嵌套ListView问题]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/50855801</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/50855801</guid><author>practicemperfect</author><pubDate>Fri, 11 Mar 2016 14:20:45 +0800</pubDate><description><![CDATA[在工作中，曾多次碰到ScrollView嵌套ListView的问题，网上的解决方法有很多种，但是杂而不全。我试过很多种方法，它们各有利弊。

在这里我将会从使用ScrollView嵌套ListView结构的原因、这个结构碰到的问题、几种解决方案和优缺点比较，这4个方面来为大家阐述、分析、总结。

实际上不光是ListView，其他继承自AbsListView的类也适用，包括Expandab]]></description><category></category></item><item><title><![CDATA[Android 编程下 AnimationDrawable (动画)的实现]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/50835036</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/50835036</guid><author>practicemperfect</author><pubDate>Wed, 09 Mar 2016 14:23:04 +0800</pubDate><description><![CDATA[Drawable Animation 可以让我们按顺序加载一系列的资源来创建一个动画。动画的创建和传统意义上电影胶卷的播放一样，是通过加载不同的图片，然后按顺序进行播放来实现的。在代 码的实现上 AnimationDrawable 类是基于 Drawable animations 来实现的。

虽然我们可以通过 AnimationDrawable 类的 API 在代码中定义一个动画的所有帧，但]]></description><category></category></item><item><title><![CDATA[Android跑马灯实现的三种方式]]></title><link>https://blog.youkuaiyun.com/practicemperfect/article/details/50834788</link><guid>https://blog.youkuaiyun.com/practicemperfect/article/details/50834788</guid><author>practicemperfect</author><pubDate>Wed, 09 Mar 2016 13:53:25 +0800</pubDate><description><![CDATA[Android跑马灯效果实现的三种方式

1、使用系统默认的跑马灯效果

实现方法：

（1）在xml文件加入一个TextView，并设置属性如下，其中红色的部分是最关键部分

android:id="@+id/textView_showmsg_circle"

android:layout_width="fill_parent"

android:layout_heigh]]></description><category></category></item></channel></rss>