﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Terry Zou-随笔分类-Android</title><link>http://www.blogjava.net/ZouYonghui/category/53569.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Jul 2015 21:16:08 GMT</lastBuildDate><pubDate>Mon, 13 Jul 2015 21:16:08 GMT</pubDate><ttl>60</ttl><item><title>服务器连接</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/07/13/426208.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Mon, 13 Jul 2015 14:10:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/07/13/426208.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/426208.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/07/13/426208.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/426208.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/426208.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">package com.zhihe.xqsh.utils;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">import java.io.File;</span></div><div><span style="font-size: 12px;">import java.io.FileOutputStream;</span></div><div><span style="font-size: 12px;">import java.io.IOException;</span></div><div><span style="font-size: 12px;">import java.io.InputStream;</span></div><div><span style="font-size: 12px;">import java.io.UnsupportedEncodingException;</span></div><div><span style="font-size: 12px;">import java.util.Date;</span></div><div><span style="font-size: 12px;">import java.util.List;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">import org.apache.http.HttpEntity;</span></div><div><span style="font-size: 12px;">import org.apache.http.HttpResponse;</span></div><div><span style="font-size: 12px;">import org.apache.http.HttpStatus;</span></div><div><span style="font-size: 12px;">import org.apache.http.HttpVersion;</span></div><div><span style="font-size: 12px;">import org.apache.http.NameValuePair;</span></div><div><span style="font-size: 12px;">import org.apache.http.client.ClientProtocolException;</span></div><div><span style="font-size: 12px;">import org.apache.http.client.HttpClient;</span></div><div><span style="font-size: 12px;">import org.apache.http.client.entity.UrlEncodedFormEntity;</span></div><div><span style="font-size: 12px;">import org.apache.http.client.methods.HttpGet;</span></div><div><span style="font-size: 12px;">import org.apache.http.client.methods.HttpPost;</span></div><div><span style="font-size: 12px;">import org.apache.http.conn.ClientConnectionManager;</span></div><div><span style="font-size: 12px;">import org.apache.http.conn.params.ConnManagerParams;</span></div><div><span style="font-size: 12px;">import org.apache.http.conn.params.ConnRouteParams;</span></div><div><span style="font-size: 12px;">import org.apache.http.conn.scheme.PlainSocketFactory;</span></div><div><span style="font-size: 12px;">import org.apache.http.conn.scheme.Scheme;</span></div><div><span style="font-size: 12px;">import org.apache.http.conn.scheme.SchemeRegistry;</span></div><div><span style="font-size: 12px;">import org.apache.http.conn.ssl.SSLSocketFactory;</span></div><div><span style="font-size: 12px;">import org.apache.http.impl.client.DefaultHttpClient;</span></div><div><span style="font-size: 12px;">import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;</span></div><div><span style="font-size: 12px;">import org.apache.http.impl.cookie.BasicClientCookie;</span></div><div><span style="font-size: 12px;">import org.apache.http.params.BasicHttpParams;</span></div><div><span style="font-size: 12px;">import org.apache.http.params.HttpConnectionParams;</span></div><div><span style="font-size: 12px;">import org.apache.http.params.HttpParams;</span></div><div><span style="font-size: 12px;">import org.apache.http.params.HttpProtocolParams;</span></div><div><span style="font-size: 12px;">import org.apache.http.util.EntityUtils;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">import com.zhihe.xqsh.network.ServerErrorException;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">import android.accounts.NetworkErrorException;</span></div><div><span style="font-size: 12px;">import android.annotation.SuppressLint;</span></div><div><span style="font-size: 12px;">import android.util.Log;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">public class CustomerHttpClient {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>private static final String TAG = CustomerHttpClient.class.getSimpleName();</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>private static DefaultHttpClient customerHttpClient;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>private CustomerHttpClient() {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static synchronized HttpClient getHttpClient() {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>if (null == customerHttpClient) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpParams params = new BasicHttpParams();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>// 设置�?��基本参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpProtocolParams.setContentCharset(params, "UTF-8");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpProtocolParams.setUseExpectContinue(params, true);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpProtocolParams.setUserAgent(params, "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) "</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">					</span>+ "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>// 超时设置</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>/* 从连接池中取连接的超时时�?*/</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>ConnManagerParams.setTimeout(params, 2000);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>ConnManagerParams.setMaxTotalConnections(params, 800);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>/* 连接超时 */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpConnectionParams.setConnectionTimeout(params, 5000);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>/* 请求超时 */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpConnectionParams.setSoTimeout(params, 10000);</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>// 设置我们的HttpClient支持HTTP和HTTPS两种模式</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>SchemeRegistry schReg = new SchemeRegistry();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>// 使用线程安全的连接管理来创建HttpClient</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>// �?��连接数：ConnManagerParams.setMaxTotalConnections(params, 50);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>customerHttpClient = new DefaultHttpClient(conMgr, params);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>return customerHttpClient;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 以get方式提交数据</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> *&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param url 提交地址</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param params 参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @return 响应结果</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws ServerErrorException 请求失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws NetworkErrorException 连接失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static String get(String url, String params) throws ServerErrorException, NetworkErrorException {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>int tryTimes = 0;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>NullPointerException ex;</span></div><div><span style="white-space: pre; font-size: 12px;">		</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>do {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>try {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>return tryGet(url, params);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>} catch (NullPointerException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>ex = e;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>tryTimes++;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} while (tryTimes &lt; 3);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>throw ex;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 以get方式提交数据</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> *&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param url 提交地址</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param params 参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @return 响应结果</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws ServerErrorException 请求失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws NetworkErrorException 连接失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static String tryGet(String url, String params) throws ServerErrorException, NetworkErrorException {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>try {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpGet request = new HttpGet(url + params);</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>/*if (LotteryApplication.isCmwap()) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>org.apache.http.HttpHost proxy = new org.apache.http.HttpHost("10.0.0.172", 80, "http");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>HttpParams httpParams = new BasicHttpParams();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>ConnRouteParams.setDefaultProxy(httpParams, proxy);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>request.setParams(httpParams);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}*/</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpClient client = getHttpClient();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpResponse response = client.execute(request);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>throw new ServerErrorException("��������&#230;�����Ժ�����");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpEntity resEntity = response.getEntity();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>String result = (resEntity == null) ? null : EntityUtils.toString(resEntity, "UTF-8");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return result;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (UnsupportedEncodingException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>logw(e.getMessage());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return null;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (ClientProtocolException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>logw(e.getMessage());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return null;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (IOException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>throw new NetworkErrorException("���Ӳ��ɹ���������������", e);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>private static void logw(String string) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>if (string != null) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>Log.w(TAG, string);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 以post方式提交数据</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> *&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param url 提交地址</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param params 参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @return 响应结果</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws ServerErrorException 请求失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws NetworkErrorException 连接失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static String post(String url, List&lt;NameValuePair&gt; params) throws ServerErrorException, NetworkErrorException {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>return post(url, params, null);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 以post方式提交数据</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> *&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param url 提交地址</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param params 参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param soTimeout 响应超时时间，单位毫�?</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @return 响应结果</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws ServerErrorException 请求失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws NetworkErrorException 连接失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static String post(String url, List&lt;NameValuePair&gt; params, int soTimeout) throws ServerErrorException,</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>NetworkErrorException {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>HttpParams httpParams;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>if (soTimeout &lt;= 0) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>httpParams = null;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} else {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>httpParams = new BasicHttpParams();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpConnectionParams.setSoTimeout(httpParams, soTimeout);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>return post(url, params, httpParams);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 以post方式提交数据</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> *&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param url 提交地址</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param params 参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param httpParams http参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @return 响应结果</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws ServerErrorException 请求失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws NetworkErrorException 连接失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static String post(String url, List&lt;NameValuePair&gt; params, HttpParams httpParams) throws ServerErrorException,</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>NetworkErrorException {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>int tryTimes = 0;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>NullPointerException ex;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>do {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>try {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>return tryPost(url, params, httpParams);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>} catch (NullPointerException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>ex = e;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>tryTimes++;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} while (tryTimes &lt; 3);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>throw ex;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 以post方式提交数据</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> *&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param url 提交地址</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param params 参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param httpParams http参数</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @return 响应结果</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws ServerErrorException 请求失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @throws NetworkErrorException 连接失败</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static String tryPost(String url, List&lt;NameValuePair&gt; params, HttpParams httpParams) throws ServerErrorException,</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>NetworkErrorException {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>try {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpPost request = new HttpPost(url);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (params != null &amp;&amp; params.size() &gt; 0) {<span style="white-space:pre">				</span></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>request.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">//<span style="white-space:pre">			</span>if (LotteryApplication.isCmwap()) {</span></div><div><span style="font-size: 12px;">//<span style="white-space:pre">				</span>org.apache.http.HttpHost proxy = new org.apache.http.HttpHost("10.0.0.172", 80, "http");</span></div><div><span style="font-size: 12px;">//<span style="white-space:pre">				</span>if (httpParams == null)</span></div><div><span style="font-size: 12px;">//<span style="white-space:pre">					</span>httpParams = new BasicHttpParams();</span></div><div><span style="font-size: 12px;">//<span style="white-space:pre">				</span>ConnRouteParams.setDefaultProxy(httpParams, proxy);</span></div><div><span style="font-size: 12px;">//<span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (httpParams != null)</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>request.setParams(httpParams);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>//Log.v("CS", params.toString());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpClient client = getHttpClient();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpResponse response = client.execute(request);</span></div><div><span style="white-space: pre; font-size: 12px;">			</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>//Log.v("CS", params.toString());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>//Log.v("CS", response.getStatusLine().getStatusCode() + "");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>request.abort();&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>throw new ServerErrorException("��������&#230;�����Ժ�����");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (response.getStatusLine ().getStatusCode () != 200) { &nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>request.abort(); &nbsp;//�ж�����,���������Կ�ʼ��һ������</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return null; &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpEntity resEntity = response.getEntity();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>String result = (resEntity == null) ? null : EntityUtils.toString(resEntity, "UTF-8");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>//Log.v("CS", params.toString() + "||||" + result);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return result;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (UnsupportedEncodingException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>logw(e.getMessage());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return null;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (ClientProtocolException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>logw(e.getMessage());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return null;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (IOException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>throw new NetworkErrorException(e.getMessage(), e);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>//throw new NetworkErrorException("连接不成功，请检查网络设�?, e);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>@SuppressLint("SdCardPath")</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static String download(String url) throws ServerErrorException, NetworkErrorException {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>try {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>//Log.i("http-download", url);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpPost request = new HttpPost(url);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpClient client = getHttpClient();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpResponse response = client.execute(request);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>throw new ServerErrorException("��������&#230;�����Ժ�����");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>HttpEntity entity = response.getEntity();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>InputStream is = entity.getContent();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (is == null)</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>throw new ServerErrorException("stream is null ");</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>String fileExt = url.substring(url.lastIndexOf(".") + 1, url.length()).toLowerCase();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>String fileName = url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf("."));</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>File tempFile = new File("/sdcard/" + fileName + "." + fileExt);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>if (!tempFile.exists())</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>tempFile.createNewFile();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>FileOutputStream fileOutputStream = new FileOutputStream(tempFile);</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>byte[] buf = new byte[1024];</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>int ch;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>while ((ch = is.read(buf)) != -1) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">				</span>fileOutputStream.write(buf, 0, ch);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>fileOutputStream.flush();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>fileOutputStream.close();</span></div><div><span style="white-space: pre; font-size: 12px;">			</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return tempFile.getAbsolutePath();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (UnsupportedEncodingException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>logw(e.getMessage());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return null;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (ClientProtocolException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>logw(e.getMessage());</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return null;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>} catch (IOException e) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>throw new NetworkErrorException(e.getMessage(), e);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>}</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 清空cookie</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static void clearCookie() {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>if (customerHttpClient != null)</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>customerHttpClient.getCookieStore().clear();</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>/**</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * 清除指定cookie</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> *&nbsp;</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> * @param name cookie名称</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span> */</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>public static void clearCookie(String name) {</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>if (customerHttpClient == null)</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">			</span>return;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>BasicClientCookie expiredCookie = new BasicClientCookie(name, "null");</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>expiredCookie.setExpiryDate(new Date(System.currentTimeMillis() - 1000));</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">		</span>customerHttpClient.getCookieStore().addCookie(expiredCookie);</span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;">}</span></div><div style="font-family: Tahoma; font-size: 11px;"></div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/426208.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-07-13 22:10 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/07/13/426208.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>abe</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/07/09/426109.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 08 Jul 2015 16:04:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/07/09/426109.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/426109.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/07/09/426109.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/426109.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/426109.html</trackback:ping><description><![CDATA[<div><div>private Drawable img_time_filter,img_time_filter_selected&nbsp;;<br /><div>//过滤器TextView中显示的图片</div><div>img_time_filter = getResources().getDrawable(R.drawable.time_filter);</div><div><span style="white-space:pre">		</span>//调用setCompoundDrawables时，必须调用Drawable.setBounds()方法,否则图片不显示</div><div><span style="white-space:pre">		</span>img_time_filter.setBounds(0, 0, img_time_filter.getMinimumWidth(), img_time_filter.getMinimumHeight());<br /><div>img_time_filter_selected = getResources().getDrawable(R.drawable.time_filter_selected);</div><div><span style="white-space:pre">		</span>img_time_filter_selected.setBounds(0, 0, img_time_filter_selected.getMinimumWidth(), img_time_filter_selected.getMinimumHeight());</div></div></div>tv_filterTime.setCompoundDrawables(img_time_filter_selected, null, null, null);<span style="white-space:pre">	</span></div><div><span style="white-space:pre">		</span>tv_filterTime.setTextColor(getResources().getColor(R.color.white));</div><div><span style="white-space:pre">		</span>rl_filterTime.setBackgroundColor(getResources().getColor(R.color.red));<br /><br /><div>tv_filterTime.setCompoundDrawables(img_time_filter, null, null, null);</div><div><span style="white-space:pre">		</span>rl_filterTime.setBackgroundColor(getResources().getColor(R.color.white));&nbsp;</div><div><span style="white-space:pre">		</span>lv_filterTime.setVisibility(View.INVISIBLE);</div></div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/426109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-07-09 00:04 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/07/09/426109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>abd</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/07/08/426108.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 08 Jul 2015 15:57:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/07/08/426108.html</guid><description><![CDATA[<div>&lt;?xml version="1.0" encoding="utf-8"?&gt;</div><div>&lt;FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"</div><div>&nbsp; &nbsp; android:layout_width="match_parent"</div><div>&nbsp; &nbsp; android:layout_height="match_parent"</div><div>&nbsp; &nbsp; android:background="@color/white"</div><div>&nbsp; &nbsp; android:orientation="vertical" &gt;</div><div></div><div>&nbsp; &nbsp; &lt;com.baidu.mapapi.map.MapView</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/bmapView_routePlanActivity"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="match_parent"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:clickable="true" /&gt;</div><div></div><div>&nbsp; &nbsp; &lt;LinearLayout</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="60dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:background="@drawable/common_title_back"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:gravity="center"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:padding="5dp" &gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;Button</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/button_transit_routePlan"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="0dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:drawableLeft="@drawable/ic_bus"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:padding="5dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:background="@drawable/selector_white_gray"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="50dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_weight="1.0"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:onClick="SearchButtonProcess"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:text="公交" /&gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;Button</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/button_drive_routePlan"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="0dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:drawableLeft="@drawable/ic_drive"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="50dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_weight="1.0"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:padding="5dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:background="@drawable/selector_white_gray"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:onClick="SearchButtonProcess"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:text="驾车" /&gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;Button</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/button_walk_routePlan"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="0dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="50dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:drawableLeft="@drawable/ic_walk"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_weight="1.0"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:padding="5dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:background="@drawable/selector_white_gray"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:onClick="SearchButtonProcess"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:text="步行" /&gt;</div><div>&nbsp; &nbsp; &lt;/LinearLayout&gt;</div><div></div><div>&nbsp; &nbsp; &lt;LinearLayout</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/linearLayout_node_routePlan"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="match_parent"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:layout_marginBottom="10dip"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:visibility="gone"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:gravity="bottom|center_horizontal" &gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;Button</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/button_pre_routePlan"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="60dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="30dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_marginRight="2dip"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:background="@drawable/pre_"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:onClick="nodeClick" /&gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;Button</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/button_next_routePlan"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="60dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="30dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_marginLeft="2dip"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:background="@drawable/next_"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:onClick="nodeClick" /&gt;</div><div>&nbsp; &nbsp; &lt;/LinearLayout&gt;</div><div></div><div>&lt;/FrameLayout&gt;</div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/426108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-07-08 23:57 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/07/08/426108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>abc</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/07/08/426107.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 08 Jul 2015 15:55:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/07/08/426107.html</guid><description><![CDATA[<div>&lt;LinearLayout</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:id="@+id/estate_linear"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_width="fill_parent"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_height="35dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_weight="1"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:background="@drawable/border_rounded_gray_white"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_gravity="center_vertical"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:gravity="center_vertical"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_margin="5dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:orientation="horizontal" &gt;</div><div><span style="white-space:pre">	   </span>&lt;ImageButton</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:id="@+id/object_btn_search"</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_width="wrap_content"</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_height="wrap_content"</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_marginLeft="8dp"</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_gravity="center_vertical|right"</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:background="@drawable/btn_search"</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:contentDescription="@null"</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:scaleType="fitXY" /&gt;</div><div><span style="white-space:pre">	    </span>&lt;RelativeLayout</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="white-space:pre">	</span> android:layout_width="1dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="white-space:pre">	</span> android:layout_height="33dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="white-space:pre">	</span> android:layout_marginLeft="8dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="white-space:pre">	</span> android:background="@color/color_line" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;EditText</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:id="@+id/object_et_content"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;style="@style/StringSearchText"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_gravity="left|center_vertical"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_marginLeft="2dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_marginRight="8dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_weight="1"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:background="@null"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:hint="@string/tip_search_hint"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:imeOptions="actionSend"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:singleLine="true"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:textCursorDrawable="@null"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:textColorHint="#626463" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;ImageButton</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:id="@+id/object_btn_del"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_width="wrap_content"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_height="wrap_content"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_gravity="right|center_vertical"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:layout_marginRight="10dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;android:background="@drawable/ic_clear" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/LinearLayout&gt;<br /><img src="http://www.blogjava.net/images/blogjava_net/zouyonghui/ic_search_pressed.png" width="36" height="36" alt="" /><img src="http://www.blogjava.net/images/blogjava_net/zouyonghui/ic_clear.png" width="24" height="24" alt="" /><img src="http://www.blogjava.net/images/blogjava_net/zouyonghui/ic_search_normal.png" width="36" height="36" alt="" /><br /><br /><div>border_rounded_gray_white.xml</div><div>&lt;?xml version="1.0" encoding="utf-8"?&gt;</div><div>&lt;layer-list xmlns:android="http://schemas.android.com/apk/res/android" &gt;</div><div></div><div>&nbsp; &nbsp; &lt;!-- 连框颜色值 --&gt;</div><div>&nbsp; &nbsp; &lt;item&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;shape&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;solid android:color="@color/bg_gray" /&gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;corners</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:bottomLeftRadius="3dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:bottomRightRadius="3dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:topLeftRadius="3dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:topRightRadius="3dp" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/shape&gt;</div><div>&nbsp; &nbsp; &lt;/item&gt;</div><div>&nbsp; &nbsp; &lt;!-- 主体背景颜色值 --&gt;</div><div>&nbsp; &nbsp; &lt;item</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:bottom="1dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:left="1dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:right="1dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; android:top="1dp"&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;shape&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;solid android:color="@color/white" /&gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;corners</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:bottomLeftRadius="3dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:bottomRightRadius="3dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:topLeftRadius="3dp"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:topRightRadius="3dp" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/shape&gt;</div><div>&nbsp; &nbsp; &lt;/item&gt;</div><div></div><div>&lt;/layer-list&gt;<br /><br /><div>&lt;style name="StringSearchText"&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name="android:textSize"&gt;14dp&lt;/item&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name="android:layout_width"&gt;wrap_content&lt;/item&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name="android:layout_height"&gt;wrap_content&lt;/item&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name="android:textColor"&gt;@android:color/black&lt;/item&gt;</div><div>&nbsp; &nbsp; &lt;/style&gt;<br /><br />btn_search.xml<br /><div>&lt;?xml version="1.0" encoding="utf-8"?&gt;</div><div>&lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt;</div><div></div><div>&nbsp; &nbsp; &lt;!-- 没有焦点时的背景图片 --&gt;</div><div>&nbsp; &nbsp; &lt;item android:drawable="@drawable/ic_search_normal" android:state_window_focused="false"/&gt;</div><div>&nbsp; &nbsp; &lt;!-- 非触摸模式下获得焦点并单击时的背景图片 --&gt;</div><div>&nbsp; &nbsp; &lt;item android:drawable="@drawable/ic_search_pressed" android:state_focused="true" android:state_pressed="true"/&gt;</div><div>&nbsp; &nbsp; &lt;!-- 触摸模式下单击时的背景图片 --&gt;</div><div>&nbsp; &nbsp; &lt;item android:drawable="@drawable/ic_search_pressed" android:state_focused="false" android:state_pressed="true"/&gt;</div><div>&nbsp; &nbsp; &lt;!-- 选中时的图片背景 --&gt;</div><div>&nbsp; &nbsp; &lt;item android:drawable="@drawable/ic_search_pressed" android:state_selected="true"/&gt;</div><div>&nbsp; &nbsp; &lt;!-- 获得焦点时的图片背景 --&gt;</div><div>&nbsp; &nbsp; &lt;item android:drawable="@drawable/ic_search_pressed" android:state_focused="true"/&gt;</div><div>&nbsp; &nbsp; &lt;!-- 默认图片背景 --&gt;</div><div>&nbsp; &nbsp; &lt;item android:drawable="@drawable/ic_search_normal"/&gt;</div><div></div><div>&lt;/selector&gt;<br /><br /><div>&lt;color name="color_line"&gt;#bebebe&lt;/color&gt;<br /><br /><br /><br /><div>private TextWatcher textWatcher = new TextWatcher() {</div><div><span style="white-space:pre">		</span>@Override</div><div><span style="white-space:pre">		</span>public void beforeTextChanged(CharSequence s, int start, int count,</div><div><span style="white-space:pre">				</span>int after) {</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">		</span>}</div><div></div><div><span style="white-space:pre">		</span>@Override</div><div><span style="white-space:pre">		</span>public void onTextChanged(CharSequence s, int start, int before,</div><div><span style="white-space:pre">				</span>int count) {</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span>@Override</div><div><span style="white-space:pre">		</span>public void afterTextChanged(Editable s) {</div><div><span style="white-space:pre">			</span>mKeywords = tv_keyword.getText().toString();</div><div><span style="white-space:pre">			</span>AgUtils.log(TAG+"mKeywords:"+mKeywords, 4);</div><div><span style="white-space:pre">			</span>if (TextUtils.isEmpty(mKeywords)) {</div><div><span style="white-space:pre">				</span>object_btn_del.setVisibility(View.GONE);</div><div><span style="white-space:pre">			</span>} else {</div><div><span style="white-space:pre">				</span>object_btn_del.setVisibility(View.VISIBLE);</div><div><span style="white-space:pre">				</span>searchIndexListInfo();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">	</span>};<br /><br /><div>tv_keyword.addTextChangedListener(textWatcher);</div></div></div></div></div></div></div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/426107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-07-08 23:55 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/07/08/426107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android之Activity的四种启动模式</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425872.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 24 Jun 2015 10:10:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425872.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/425872.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425872.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/425872.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/425872.html</trackback:ping><description><![CDATA[<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><span style="line-height: 1.5">转载：<a href="http://www.cnblogs.com/allenzheng/archive/2013/04/28/3050065.html">http://www.cnblogs.com/allenzheng/archive/2013/04/28/3050065.html</a><br />当应用运行起来后就会开启一条线程，线程中会运行一个任务栈，当<span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">实例创建后就会放入任务栈中。</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity启动</span><span style="line-height: 1.5; font-family: 宋体">模式的设置在</span></span><span style="line-height: 1.5">AndroidManifest.</span><span style="line-height: 1.5">xml</span><span style="line-height: 1.5">文件中，通过配置</span><span style="line-height: 1.5">Activity<span style="line-height: 1.5; font-family: 宋体">的属性</span></span><span style="line-height: 1.5">android:launchMode</span><span style="line-height: 1.5">=</span><span style="line-height: 1.5">""</span><span style="line-height: 1.5">设置</span><span style="line-height: 1.5">。</span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><span style="line-height: 1.5">&nbsp;</span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><strong><span style="line-height: 1.5">1.&nbsp;</span><span style="line-height: 1.5">Standared<span style="line-height: 1.5; font-family: 宋体">模式（默认）</span></span></strong></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><span style="line-height: 1.5">我们平时直接创建的<span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">都是这种模式的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">，这种模式的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">的特点是：只要你创建了</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">实例，一旦激活该</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">，则会向任务栈中加入新创建的实例，退出</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">则会在任务栈中销毁该实例。</span></span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0">&nbsp;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><strong><span style="line-height: 1.5">2.&nbsp;</span><span style="line-height: 1.5">SingleTop<span style="line-height: 1.5; font-family: 宋体">模式</span></span></strong></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><span style="line-height: 1.5">这种模式会考虑当前要激活的<span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">实例在任务栈中是否正处于栈顶，如果处于栈顶则无需重新创建新的实例，会重用已存在的实例，否则会在任务栈中创建新的实例。</span></span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><span style="line-height: 1.5">&nbsp;</span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><strong><span style="line-height: 1.5">3.&nbsp;</span><span style="line-height: 1.5">SingleTask<span style="line-height: 1.5; font-family: 宋体">模式</span></span></strong></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><span style="line-height: 1.5">如果任务栈中存在该模式的<span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">实例，则把栈中该实例以上的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">实例全部移除，调用该实例的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">newInstance()</span><span style="line-height: 1.5; font-family: 宋体">方法重用该</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">，使该实例处於栈顶位置，否则就重新创建一个新的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">实例。</span></span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0">&nbsp;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><strong><span style="line-height: 1.5">4.&nbsp;</span><span style="line-height: 1.5">SingleInstance<span style="line-height: 1.5; font-family: 宋体">模式</span></span></strong></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px auto 10px 30px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" class="p0"><span style="line-height: 1.5">当该模式<span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">实例在任务栈中创建后，只要该实例还在任务栈中，即只要激活的是该类型的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">，都会通过调用实例的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">newInstance()</span><span style="line-height: 1.5; font-family: 宋体">方法重用该</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">，此时使用的都是同一个</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity实例</span><span style="line-height: 1.5; font-family: 宋体">，它都会处于任务栈的栈顶。此模式一般用于加载较慢的，比较耗性能且不需要每次都重新创建的</span><span style="line-height: 1.5; font-family: 'Times New Roman'">Activity</span><span style="line-height: 1.5; font-family: 宋体">。</span></span></p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/425872.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-06-24 18:10 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425872.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android中跨进程通讯的4种方式</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425871.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 24 Jun 2015 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425871.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/425871.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425871.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/425871.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/425871.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: android中跨进程通讯的4种方式转自：http://www.cnblogs.com/sevenyuan/archive/2013/03/22/2975122.html由于android系统中应用程序之间不能共享内存。因此，在不同应用程序之间交互数据（跨进程通讯）就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用...&nbsp;&nbsp;<a href='http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425871.html'>阅读全文</a><img src ="http://www.blogjava.net/ZouYonghui/aggbug/425871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-06-24 17:28 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android 一个应用中只有一个进程么？还是可以有多个</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425869.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 24 Jun 2015 09:12:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425869.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/425869.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/425869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/425869.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(241,248,240); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px 'Microsoft YaHei', Verdana, sans-serif, SimSun; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">Android 手机上的应用一般情况下都在一个进程中运行。</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(241,248,240); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px 'Microsoft YaHei', Verdana, sans-serif, SimSun; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">但是，也可以指定Activity或者Service在Remote 进程中执行。多数情况下，只有在用户认为应用退出后还需要继续后台长期运行的应用，才需要这样做。此时，该应用有两个进程。</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(241,248,240); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px 'Microsoft YaHei', Verdana, sans-serif, SimSun; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">还有一种hack的方式，在apk中通过调用命令行来启动另外的进程。此种方式用户不可见，也不安全。不提倡。</p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/425869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-06-24 17:12 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Fragment的生命周期</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425868.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 24 Jun 2015 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425868.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/425868.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/425868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/425868.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">官网帮助文档链接：<br />&nbsp;http://developer.android.com/guide/components/fragments.html</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">主要看两张图，和跑代码</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">一，Fragment的生命周&nbsp;</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://img.my.csdn.net/uploads/201211/29/1354170699_6619.png" /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">二，与Activity生命周期的对比</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; &nbsp;<img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://img.my.csdn.net/uploads/201211/29/1354170682_3824.png" /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">场景演示 : 切换到该Fragment</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">11-29 14:26:35.095: D/AppListFragment(7649): onAttach<br />11-29 14:26:35.095: D/AppListFragment(7649): onCreate<br />11-29 14:26:35.095: D/AppListFragment(7649): onCreateView<br />11-29 14:26:35.100: D/AppListFragment(7649): onActivityCreated<br />11-29 14:26:35.120: D/AppListFragment(7649): onStart<br />11-29 14:26:35.120: D/AppListFragment(7649): onResume<br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">屏幕灭掉：</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">11-29 14:27:35.185: D/AppListFragment(7649): onPause<br />11-29 14:27:35.205: D/AppListFragment(7649): onSaveInstanceState<br />11-29 14:27:35.205: D/AppListFragment(7649): onStop<br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">屏幕解锁</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">11-29 14:33:13.240: D/AppListFragment(7649): onStart<br />11-29 14:33:13.275: D/AppListFragment(7649): onResume<br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">切换到其他Fragment:<br />11-29 14:33:33.655: D/AppListFragment(7649): onPause<br />11-29 14:33:33.655: D/AppListFragment(7649): onStop<br />11-29 14:33:33.660: D/AppListFragment(7649): onDestroyView<br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">切换回本身的Fragment:</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">11-29 14:33:55.820: D/AppListFragment(7649): onCreateView<br />11-29 14:33:55.825: D/AppListFragment(7649): onActivityCreated<br />11-29 14:33:55.825: D/AppListFragment(7649): onStart<br />11-29 14:33:55.825: D/AppListFragment(7649): onResume<br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">回到桌面</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">11-29 14:34:26.590: D/AppListFragment(7649): onPause<br />11-29 14:34:26.880: D/AppListFragment(7649): onSaveInstanceState<br />11-29 14:34:26.880: D/AppListFragment(7649): onStop<br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">回到应用</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">11-29 14:36:51.940: D/AppListFragment(7649): onStart<br />11-29 14:36:51.940: D/AppListFragment(7649): onResume</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">退出应用</p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">11-29 14:37:03.020: D/AppListFragment(7649): onPause<br />11-29 14:37:03.155: D/AppListFragment(7649): onStop<br />11-29 14:37:03.155: D/AppListFragment(7649): onDestroyView<br />11-29 14:37:03.165: D/AppListFragment(7649): onDestroy<br />11-29 14:37:03.165: D/AppListFragment(7649): onDetach<br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">比Activity多了一些生命周期，完整和Activity对接上，大家好好利用。<br /><br />转载：<a href="http://blog.csdn.net/forever_crying/article/details/8238863/">http://blog.csdn.net/forever_crying/article/details/8238863/</a></p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/425868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-06-24 16:05 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android ANR产生原因和解决办法</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425867.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 24 Jun 2015 08:00:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425867.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/425867.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425867.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/425867.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/425867.html</trackback:ping><description><![CDATA[<div>ANR(Application Not Responding)<br />&nbsp;&nbsp;&nbsp;&nbsp;ANR定义：在Android上，如果你的应用程序有一段时间响应不够灵敏，系统会向用户显示一个对话框，这个对话框称作应用程序无响应对话框（ANR：Application Not Responding），用户可以选择&#8220;等待&#8221;让应用程序继续运行，也可以选择&#8220;强制关闭&#8221;。所以一个顺畅合理的应用程序不会出现ANR，而让用户处理这个对话框。因此，在程序里对响应性能的设计很重要，这样系统不会显示ANR给用户。<br />&nbsp;&nbsp;&nbsp;&nbsp;默认情况下，<span>Android的Activity执行时间为5s,BroadcastReceiver的最长执行时间为10s.<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;第一，什么会引发ANR<br />&nbsp;&nbsp;&nbsp;&nbsp;在Android里，应用程序响应由Activity Manager和WindowManager系统服务监视的，当它监听到一下一种情况时，Android就会针对特定的应用程序显示ANR：<br />&nbsp;&nbsp;&nbsp;&nbsp;1).在5秒内没有响应输入事件（例如，按键按下，屏幕触摸）<br />&nbsp;&nbsp;&nbsp;&nbsp;2).BroadcastReceiver在10秒内没有执行完毕<br />&nbsp;&nbsp;&nbsp;&nbsp;造成以上两点多原因有很多，比如在主线程中做非常耗时的操作，比如下载，IO异常等。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;潜在的耗时操作，例如网络或数据库操作或者高耗时的计算如改变位图尺寸，这些操作应该放在子线程中（或者以数据库为例，通过异步请求的方式）来完成，然而，不是说你的主线程阻塞在那里等待子线程来完成--也不用调用Thread.wait()或Thread.sleep();替代的方法是主线程需要为子线程提供一个handler，以便完成时能够交给主线程，以这种方式设计你的应用程序，将能保证你的主线程保持对输入的响应性并能避免由于5秒输入事件的超时引发的ANR对话框。<br />&nbsp;&nbsp;&nbsp;&nbsp;第二，如何避免ANR<br />&nbsp;&nbsp;&nbsp;&nbsp;1.<span>运行在主线程里的任何方法都尽可能少做事情。特别是，Activity应该在它的关键生命周期方法（如onCreate()和onResume()）里尽可能少的去做创建操作。（可以采用重新开启子线程的方式，然后使用Handler+Message的方式做一些操作，比如更新主线程中的ui等）<br />&nbsp;&nbsp;&nbsp;&nbsp;2.<span>应用程序应该避免在BroadcastReceiver里做耗时的操作或计算。但不再是在子线程里做这些任务（因为 BroadcastReceiver的生命周期短），替代的是，如果响应Intent广播需要执行一个耗时的动作的话，应用程序应该启动一个 Service。（此处需要注意的是可以在广播接受者中启动Service，但是却不可以在Service中启动broadcasereciver,关于原因后续会有介绍，此处不是本文重点）</span><br />&nbsp;&nbsp;&nbsp;&nbsp;3.<span>避免在Intent Receiver里启动一个Activity，因为它会创建一个新的画面，并从当前用户正在运行的程序上抢夺焦点。如果你的应用程序在响应Intent广 播时需要向用户展示什么，你应该使用Notification Manager来实现。<br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span>总结：anr异常也是在程序中自己经常遇到的问题，主要的解决办法自己最常用的就是不要在主线程中做耗时的操作，而应放在子线程中来实现，比如采用Handler+mesage的方式，或者是有时候需要做一些和网络相互交互的耗时操作就采用asyntask异步任务的方式（它的底层其实Handler+mesage有所区别的是它是线程池）等，在主线程中更新UI。</span></div></span></span><img src ="http://www.blogjava.net/ZouYonghui/aggbug/425867.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-06-24 16:00 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/06/24/425867.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android自定义控件</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/05/19/425170.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Tue, 19 May 2015 09:29:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/05/19/425170.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/425170.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/05/19/425170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/425170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/425170.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 开发自定义控件的步骤:1、了解View的工作原理&nbsp;2、 编写继承自View的子类3、 为自定义View类增加属性&nbsp;4、 绘制控件&nbsp;5、 响应用户消息&nbsp;6 、自定义回调函数&nbsp;一、View结构原理Android系统的视图结构的设计也采用了组合模式，即View作为所有图形的基类，Viewgroup对View继承...&nbsp;&nbsp;<a href='http://www.blogjava.net/ZouYonghui/archive/2015/05/19/425170.html'>阅读全文</a><img src ="http://www.blogjava.net/ZouYonghui/aggbug/425170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-05-19 17:29 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/05/19/425170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android 管理Fragments</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/05/18/425144.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Mon, 18 May 2015 10:28:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/05/18/425144.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/425144.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/05/18/425144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/425144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/425144.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Android 管理Fragments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FragmentManager&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为了管理Activity中的fragments，需要使...&nbsp;&nbsp;<a href='http://www.blogjava.net/ZouYonghui/archive/2015/05/18/425144.html'>阅读全文</a><img src ="http://www.blogjava.net/ZouYonghui/aggbug/425144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-05-18 18:28 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/05/18/425144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>onSaveInstanceState和onRestoreInstanceState触发的时机</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/05/11/424984.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Mon, 11 May 2015 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/05/11/424984.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/424984.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/05/11/424984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/424984.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/424984.html</trackback:ping><description><![CDATA[<span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: large/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-stroke-width: 0px">当某个activity变得&#8220;容易&#8221;被系统销毁时，该activity的onSaveInstanceState就会被执行，除非该activity是被用户主动销毁的，例如当用户按BACK键的时候。<span class="Apple-converted-space">&nbsp;</span><br />注意上面的双引号，何为&#8220;容易&#8221;？言下之意就是该activity还没有被销毁，而仅仅是一种可能性。这种可能性有哪些？通过重写一个activity的所有生命周期的onXXX方法，包括onSaveInstanceState和onRestoreInstanceState方法，我们可以清楚地知道当某个activity（假定为activity A）显示在当前task的最上层时，其onSaveInstanceState方法会在什么时候被执行，有这么几种情况：<span class="Apple-converted-space">&nbsp;</span><br /><span style="color: red">1、当用户按下HOME键时。<span class="Apple-converted-space">&nbsp;</span><br />这是显而易见的，系统不知道你按下HOME后要运行多少其他的程序，自然也不知道activity A是否会被销毁，故系统会调用onSaveInstanceState，让用户有机会保存某些非永久性的数据。以下几种情况的分析都遵循该原则<span class="Apple-converted-space">&nbsp;</span><br />2、长按HOME键，选择运行其他的程序时。<span class="Apple-converted-space">&nbsp;</span><br />3、按下电源按键（关闭屏幕显示）时。<span class="Apple-converted-space">&nbsp;</span><br />4、从activity A中启动一个新的activity时。<span class="Apple-converted-space">&nbsp;</span><br />5、屏幕方向切换时，例如从竖屏切换到横屏时。</span><span class="Apple-converted-space">&nbsp;</span><br />在屏幕切换之前，系统会销毁activity A，在屏幕切换之后系统又会自动地创建activity A，所以onSaveInstanceState一定会被执行。<span class="Apple-converted-space">&nbsp;</span><br />总而言之，onSaveInstanceState的调用遵循一个重要原则，即<span style="color: red">当系统&#8220;未经你许可&#8221;时销毁了你的activity，则onSaveInstanceState会被系统调用，这是系统的责任，因为它必须要提供一个机会让你保存你的数据（当然你不保存那就随便你了）。<span class="Apple-converted-space">&nbsp;</span></span><br />至于onRestoreInstanceState方法，需要注意的是，<span style="color: red">onSaveInstanceState方法和onRestoreInstanceState方法&#8220;不一定&#8221;是成对的被调用的，onRestoreInstanceState被调用的前提是，activity A&#8220;确实&#8221;被系统销毁了，而如果仅仅是停留在有这种可能性的情况下，则该方法不会被调用，例如，当正在显示activity A的时候，用户按下HOME键回到主界面，然后用户紧接着又返回到activity A，这种情况下activity A一般不会因为内存的原因被系统销毁，故activity A的onRestoreInstanceState方法不会被执行。</span><span class="Apple-converted-space">&nbsp;</span><br />另外，onRestoreInstanceState的bundle参数也会传递到onCreate方法中，你也可以选择在onCreate方法中做数据还原。</span><span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span></span><br /><span style="color: red">转载：</span><a href="http://gundumw100.iteye.com/blog/1115080"><span style="color: red">http://gundumw100.iteye.com/blog/1115080</span></a><img src ="http://www.blogjava.net/ZouYonghui/aggbug/424984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-05-11 10:34 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/05/11/424984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android中shape的使用</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/04/18/424510.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Sat, 18 Apr 2015 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/04/18/424510.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/424510.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/04/18/424510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/424510.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/424510.html</trackback:ping><description><![CDATA[<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">Android中常常使用shape来定义控件的一些显示属性，今天看了一些shape的使用，对shape有了大体的了解，稍作总结：<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />先看下面的代码：<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,153,102); padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;shape&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,153,102); padding-top: 0px">&lt;!-- 实心 --&gt;</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,153,102); padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;solid android:color="#ff9d77"/&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 渐变 --&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;gradient<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:startColor="#ff8c00"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:endColor="#FFFFFF"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:angle="270" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 描边 --&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;stroke<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:width="2dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:color="#dcdcdc" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 圆角 --&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;corners<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:radius="2dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;padding<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:left="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:top="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:right="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:bottom="10dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/shape&gt;</span></p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,0,255); padding-top: 0px">solid：实心，就是填充的意思</span><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(255,0,0); padding-top: 0px"><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /></span><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">android:color</span>指定填充的颜色<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,0,255); padding-top: 0px">gradient：渐变</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />android:startColor和android:endColor分别为起始和结束颜色，ndroid:angle是渐变角度，<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(255,0,0); padding-top: 0px">必须为45的整数倍</span>。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />另外渐变默认的模式为android:type="linear"，即线性渐变，可以指定渐变为径向渐变，android:type="radial"，径向渐变需要指定半径android:gradientRadius="50"。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,0,255); padding-top: 0px">stroke：描边</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />android:width="2dp" 描边的宽度，android:color 描边的颜色。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />我们还可以把描边弄成虚线的形式，设置方式为：<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />android:dashWidth="5dp"<span class="Apple-converted-space">&nbsp;</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />android:dashGap="3dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />其中android:dashWidth表示'-'这样一个横线的宽度，android:dashGap表示之间隔开的距离。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,0,255); padding-top: 0px">corners：圆角</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />android:radius为角的弧度，值越大角越圆。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />我们还可以把四个角设定成不同的角度，方法为：<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&lt;corners<span class="Apple-converted-space">&nbsp;</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:topRightRadius="20dp"&nbsp;&nbsp;&nbsp; 右上角<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:bottomLeftRadius="20dp"&nbsp;&nbsp;&nbsp; 右下角<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:topLeftRadius="1dp"&nbsp;&nbsp;&nbsp; 左上角<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:bottomRightRadius="0dp"&nbsp;&nbsp;&nbsp; 左下角<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;/&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />这里有个地方需要注意，<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(255,0,0); padding-top: 0px">bottomLeftRadius是右下</span><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(255,0,0); padding-top: 0px">角，而不是左下角，</span>这个有点郁闷，不过不影响使用，记得别搞错了就行。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />还有网上看到有人说设置成0dp无效，不过我在测试中发现是可以的，我用的是2.2，可能修复了这个问题吧，如果无效的话那就只能设成1dp了。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,0,255); padding-top: 0px">padding：间隔</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />这个就不用多说了，XML布局文件中经常用到。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />大体的就是这样，以下是一个使用的具体示例：用在Selector中作为Button的背景，分别定义了按钮的一般状态、获得焦点状态和按下时的状态，具体代码如下：<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,0,255); padding-top: 0px">main.xml:</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,153,102); padding-top: 0px">&lt;Button<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; android:layout_width="wrap_content"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; android:layout_height="wrap_content"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; android:text="TestShapeButton"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; android:background="@drawable/button_selector"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; /&gt;</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,0,255); padding-top: 0px">button_selector.xml:</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,153,102); padding-top: 0px">&lt;?xml version="1.0" encoding="utf-8"?&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&lt;selector<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; xmlns:android="http://schemas.android.com/apk/res/android"&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &lt;item android:state_pressed="true" &gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;shape&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 渐变 --&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;gradient<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:startColor="#ff8c00"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:endColor="#FFFFFF"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:type="radial"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:gradientRadius="50" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 描边 --&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;stroke<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:width="2dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:color="#dcdcdc"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:dashWidth="5dp"<span class="Apple-converted-space">&nbsp;</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:dashGap="3dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 圆角 --&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;corners<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:radius="2dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;padding<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:left="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:top="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:right="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:bottom="10dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/shape&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &lt;/item&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &lt;item android:state_focused="true" &gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;shape&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;gradient<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:startColor="#ffc2b7"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:endColor="#ffc2b7"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:angle="270" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;stroke<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:width="2dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:color="#dcdcdc" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;corners<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:radius="2dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;padding<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:left="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:top="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:right="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:bottom="10dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/shape&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &lt;/item&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &lt;item&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;shape&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,153,102); padding-top: 0px">&lt;solid android:color="#ff9d77"/&gt;</span><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,153,102); padding-top: 0px"><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;stroke<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:width="2dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:color="#fad3cf" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;corners<span class="Apple-converted-space">&nbsp;</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; android:topRightRadius="5dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; android:bottomLeftRadius="5dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; android:topLeftRadius="0dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; android:bottomRightRadius="0dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;padding<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:left="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:top="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:right="10dp"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:bottom="10dp" /&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/shape&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&nbsp;&nbsp;&nbsp; &lt;/item&gt;<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />&lt;/selector&gt;</span></p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">运行效果如下图：</p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">一般状态：</p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><a style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(1,95,145); text-decoration: none; padding-top: 0px" href="http://img1.51cto.com/attachment/201103/201531163.png" target="_blank"></a></p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp;<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouyonghui/1111.png" width="354" longdesc="" height="149" /></p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">获得焦点状态：</p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><a style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(1,95,145); text-decoration: none; padding-top: 0px" href="http://img1.51cto.com/attachment/201103/201606958.png" target="_blank"></a></p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp;<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouyonghui/22222.png" width="355" longdesc="" height="137" /></p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">按下状态：</p>
<p style="padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/28px 宋体, 'Arial Narrow', arial, serif; white-space: normal; letter-spacing: normal; height: auto; color: rgb(85,85,85); clear: both; overflow: hidden; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouyonghui/33333.png" width="355" longdesc="" height="139" /><br /><span style="color: red">转载：</span><a href="http://kofi1122.blog.51cto.com/2815761/521605/"><span style="color: red">http://kofi1122.blog.51cto.com/2815761/521605/</span></a><br /></p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/424510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-04-18 10:41 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/04/18/424510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android使用AttributeSet自定义控件的方法</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/04/14/424395.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Tue, 14 Apr 2015 02:53:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/04/14/424395.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/424395.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/04/14/424395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/424395.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/424395.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 所谓自定义控件(或称组件)也就是编写自己的控件类型,而非Android中提供的标准的控件,如TextView,CheckBox等等.不过自定义的控件一般也都是从标准控件继承来的,或者是多种控件组合,或者是对标准控件的属性进行改变而得到的自己满意的控件. &nbsp;&nbsp;&nbsp;&nbsp;自定义控件可能会有很多种方法,这里只介绍我要介绍的方法.&nbsp;&nbsp;&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/ZouYonghui/archive/2015/04/14/424395.html'>阅读全文</a><img src ="http://www.blogjava.net/ZouYonghui/aggbug/424395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-04-14 10:53 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/04/14/424395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android Activity启动模式分析</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/04/13/424375.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Mon, 13 Apr 2015 09:56:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/04/13/424375.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/424375.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/04/13/424375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/424375.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/424375.html</trackback:ping><description><![CDATA[<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">在Android的联机文档中，有对Activity的简单介绍，现在通过编写代码对Activity的启动模式做一个深入的理解。<span class="Apple-converted-space">&nbsp;</span><br />在配置文件AndroidManifest.xml中，activity元素的android:launchMode属性用来配置对应Activity的启动模式，目前有以下四种启动模式：<span class="Apple-converted-space">&nbsp;</span><br />1.standard<span class="Apple-converted-space">&nbsp;</span><br />2.singleTop<span class="Apple-converted-space">&nbsp;</span><br />3.singleTask<span class="Apple-converted-space">&nbsp;</span><br />4.singleInstance<span class="Apple-converted-space">&nbsp;</span><br />如果不对Activity设置启动模式，默认就是standard模式</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">一、standard</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">请看以下代码，实现了一个Activity ：</p><br />
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">public class A_Activity extends Activity {<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp; /** Called when the activity is first created. */<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp; @Override<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp; public void onCreate(Bundle savedInstanceState) {<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.onCreate(savedInstanceState);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TextView textView=new TextView(this);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textView.setText(this+"");//<span style="color: rgb(255,0,0)">这里用于打印当前Activity的hashcode，可以此判断Activity实例是不是同一个对象</span><span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Button button=new Button(this);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; button.setText("Go next activity");<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; button.setOnClickListener(new OnClickListener(){</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void onClick(View v) {<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated method stub<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Intent intent=new Intent();<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intent.setClass(A_Activity.this, A_Activity.class);//<span style="color: rgb(255,0,0)">说明发出Intent与启动的Activity都是A_Activity的实例</span><span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startActivity(intent);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinearLayout layout=new LinearLayout(this);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.setOrientation(LinearLayout.VERTICAL);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addView(textView);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addView(button);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setContentView(layout);<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp; }<span class="Apple-converted-space">&nbsp;</span><br />}<span class="Apple-converted-space">&nbsp;</span><br />运行之，请看下图：<span class="Apple-converted-space">&nbsp;</span><br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_13000889425UZ1.jpg" width="330" height="123" /><span class="Apple-converted-space">&nbsp;</span><br />点击button后，<span style="color: rgb(255,0,0)">注意看第一行的textView</span><span class="Apple-converted-space">&nbsp;</span><br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088942t5fH.jpg" width="329" height="121" /><span class="Apple-converted-space">&nbsp;</span><br />由此可知，生成了新的A_Activity对象，这时我们按回退键，就会依次回到之前的Activity。点击button的过程就是压栈的过程，在standard模式下，就会不断生成新的Activity对象</p><br />
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">二、singleTop</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">singleTop和standard模式都会将intent发送给新的Activity实例，不同的是，如果创建Intent的时候栈顶有要创建的singleTop模式下的Activity实例，则将Intent发送给该实例，不会再创建Activity的新实例。<span class="Apple-converted-space">&nbsp;</span><br />还是使用之前的代码，只是设置A_Activity的启动模式为singleTop:android:launchMode="singleTop"，运行之，请看下图：<span class="Apple-converted-space">&nbsp;</span><br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088943kjqQ.jpg" width="328" height="124" /><span class="Apple-converted-space">&nbsp;</span><br />这个时候我们无论点击多少次button，textView都显示同一个Activity实例，按回退键时会直接退出程序，表明在singleTop模式下，如果在栈顶存在Intent中那个目标Activity的实例，就不会创建新的实例，而直接使用栈顶的对象，对于资源有限的移动设备来说，也是有实际意义的。<span class="Apple-converted-space">&nbsp;</span><br />如果是在不同Activity之间跳转，就会跟standard模式的情形一样，请看下面代码：<br />public class<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">A_Activity</span><span class="Apple-converted-space">&nbsp;</span>extends Activity {<br />&nbsp;&nbsp;&nbsp; /** Called when the activity is first created. */<br />&nbsp;&nbsp;&nbsp; @Override<br />&nbsp;&nbsp;&nbsp; public void onCreate(Bundle savedInstanceState) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.onCreate(savedInstanceState);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TextView textView=new TextView(this);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textView.setText(this+"");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Button button=new Button(this);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; button.setText("Go B_Activity");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; button.setOnClickListener(new OnClickListener(){</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void onClick(View v) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated method stub<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Intent intent=new Intent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intent.setClass(A_Activity.this, B_Activity.class);//<span style="color: rgb(255,0,0)">从A跳转到B</span><span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startActivity(intent);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinearLayout layout=new LinearLayout(this);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.setOrientation(LinearLayout.VERTICAL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addView(textView);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addView(button);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setContentView(layout);<br />&nbsp;&nbsp;&nbsp; }<br />}<br />public class<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">B_Activity</span><span class="Apple-converted-space">&nbsp;</span>extends Activity {&nbsp;<br />&nbsp;&nbsp;&nbsp; /**&lt;li&gt;Description: &lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; *<br />&nbsp;&nbsp;&nbsp;&nbsp; * @param savedInstanceState<br />&nbsp;&nbsp;&nbsp;&nbsp; * @see android.app.Activity#onCreate(android.os.Bundle)<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; @Override<br />&nbsp;&nbsp;&nbsp; protected void onCreate(Bundle savedInstanceState) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated method stub<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.onCreate(savedInstanceState);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TextView textView=new TextView(this);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textView.setText(this+"");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Button button=new Button(this);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; button.setText("Go A_Activity");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; button.setOnClickListener(new OnClickListener(){&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void onClick(View v) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated method stub<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Intent intent=new Intent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intent.setClass(B_Activity.this, A_Activity.class);//<span style="color: rgb(255,0,0)">从B跳转到A<br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startActivity(intent);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinearLayout layout=new LinearLayout(this);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.setOrientation(LinearLayout.VERTICAL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addView(textView);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addView(button);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setContentView(layout);<br />&nbsp;&nbsp;&nbsp; }<br />}<br />运行后，如下图：<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088943tUD2.jpg" width="326" height="120" /><span class="Apple-converted-space">&nbsp;</span><br />点击button后：<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088943UUpv.jpg" width="332" height="119" /><span class="Apple-converted-space">&nbsp;</span><br />再点击button后：<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_13000889430rQH.jpg" width="326" height="119" /><span class="Apple-converted-space">&nbsp;</span><br />这样每次都会创建目标Activity的新实例，因为在跳转时，处于栈顶的对象不是目标Activity的实例</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">三、singleTask</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">singleTask模式只能创建一个实例，当发送一个Intent，目标Activity为singleTask模式时，系统会检查栈里面是否已经有该Activity的实例，如果有就直接将Intent发送给它，还是使用（二）中的代码，将A_Activity启动模式设置为singleTask，B_Activity启动模式设置为standard，启动后如下图：<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088944VUhE.jpg" width="327" height="122" /><span class="Apple-converted-space">&nbsp;</span><br />点击button后：<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088945D3gU.jpg" width="330" height="120" /><span class="Apple-converted-space">&nbsp;</span><br />继续点击button:<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088945J8aR.jpg" width="330" height="122" /><span class="Apple-converted-space">&nbsp;</span><br />由此可知，singleTask模式的A_Activity在栈中只有一个实例，可以被重复使用<br />并且，<span style="color: rgb(255,0,0)">如果收到Intent生成一个新实例，那么用户可以通过回退键回到上一个状态，如果是已经存在的一个activity来处理这个Intent的话，就无法通过回退键回到上一个状态（对singleInstance同样适用）</span><span class="Apple-converted-space">&nbsp;</span>，比如刚才最后一步如果再按回退键，就会直接退出程序，而不会回到上一步的状态。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">四、singleInstance</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">这个模式下的Activity在一个单独的task栈中，这个栈也只能包含一个Activity的实例，将上面代码稍微改动一下，显示taskId:<br /><span style="color: rgb(255,0,0)">A_Activity</span><span class="Apple-converted-space">&nbsp;</span>中：textView.setText(this.getTaskId()+"");<br /><span style="color: rgb(255,0,0)">B_Activity<span class="Apple-converted-space">&nbsp;</span></span>中：textView.setText(this.getTaskId()+"");<br />另外将<span style="color: rgb(255,0,0)">B_Activity<span class="Apple-converted-space">&nbsp;</span></span>设置为singleInstance模式，<span style="color: rgb(255,0,0)">A_Activity</span><span class="Apple-converted-space">&nbsp;</span>设置为standard模式，启动后：<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_130008894556og.jpg" width="334" height="122" /><span class="Apple-converted-space">&nbsp;</span><br />点击button后：<br /><img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://hi.csdn.net/attachment/201103/14/1039938_1300088945rRKZ.jpg" width="328" height="122" /><span class="Apple-converted-space">&nbsp;</span><br />表明启动了新的task</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">总结四个模式的不同：<br />1、Intent的目标Activity由哪个task持有<br />standard与singleTop的Activity所在task，与收到的Intent的发送者所在task相同，除非Intent包括参数FLAG_ACTIVITY_NEW_TASK，该参数会启动Activity到新的task中；singleTask和singleInstance总是把Activity作为一个task的根元素，它们不会被启动到其他task里<br />2、是否允许Activity的多个实例<br />standard与singleTop可以被实例化多次，可以存在不同task中，并且一个task可以包括同一activity的多个实例<br />singleTask与singleInstance则在同一个task中只能允许Activity的一个实例，并且是task的根元素<br />3、在同一个task栈中，是否允许其他Activity的实例存在<br />singleInstance单独在一个task中，其他启动模式允许不同Activity的实例存在<br />4、是否每次生成新实例接收Intent<br />standard每次启动都会生成新实例<br />singleTop的activity如果在task的栈顶的话，则不生成新的activity实例，直接使用该实例，否则，就要生成新的实例<br />singleInstance在所在栈中是唯一的activity，它每次都会被重用<br />singleTask如果task栈中有该模式的Activity，就不生成新的activity实例，直接使用该实例，否则，就要生成新的实例<br /><span style="color: red">转载：</span><a href="http://blog.csdn.net/leiswpu/article/details/6248528"><span style="color: red">http://blog.csdn.net/leiswpu/article/details/6248528</span></a><br /></p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/424375.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-04-13 17:56 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/04/13/424375.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android自定义属性，format详解</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/03/23/423764.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Mon, 23 Mar 2015 14:43:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/03/23/423764.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/423764.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/03/23/423764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/423764.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/423764.html</trackback:ping><description><![CDATA[<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">1. reference：参考某一资源ID。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "名称"&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(0,255,0)">background</span>" format = "<span style="color: rgb(255,0,0)">reference</span>" /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ImageView</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_width = "42dip"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height = "42dip"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(0,255,0)">background</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(255,0,0)">@drawable/图片ID</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">2. color：颜色值。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "名称"&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(255,0,255)">textColor</span>" format = "<span style="color: rgb(0,0,255)">color</span>" /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TextView</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_width = "42dip"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height = "42dip"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(0,255,0)"><span style="color: rgb(255,0,255)">textColor</span></span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(0,0,255)">#00FF00</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">3. boolean：布尔值。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "名称"&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(0,255,0)">focusable</span>" format = "<span style="color: rgb(255,0,0)">boolean</span>" /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Button</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_width = "42dip"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_height = "42dip"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(0,255,0)">focusable</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(255,0,0)">true</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">4. dimension：尺寸值。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "名称"&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(255,0,255)">layout_width</span>" format = "<span style="color: rgb(0,0,255)">dimension</span>" /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Button</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(255,0,255)">layout_width</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(0,0,255)">42dip</span>"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(255,0,255)">layout_height</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(0,0,255)">42dip</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">5. float：浮点值。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "AlphaAnimation"&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(0,255,0)">fromAlpha</span>" format = "<span style="color: rgb(255,0,0)">float</span>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(0,255,0)">toAlpha</span>" format = "<span style="color: rgb(255,0,0)">float</span>" /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;alpha<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(0,255,0)">fromAlpha</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(255,0,0)">1.0</span>"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(0,255,0)">toAlpha</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(255,0,0)">0.7</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">6. integer：整型值。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "AnimatedRotateDrawable"&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "visible" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(255,0,255)">frameDuration</span>" format="<span style="color: rgb(0,0,255)">integer</span>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(255,0,255)">framesCount</span>" format="<span style="color: rgb(0,0,255)">integer</span>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "pivotX" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "pivotY" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "drawable" /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;animated-rotate</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:android = "<a style="color: rgb(51,102,153); text-decoration: none" href="http://schemas.android.com/apk/res/android">http://schemas.android.com/apk/res/android</a>"&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:drawable = "@drawable/图片ID"&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; android:pivotX = "50%"&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:pivotY = "50%"&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(255,0,255)">framesCount</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(0,0,255)">12</span>"&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(255,0,255)">frameDuration</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(0,0,255)">100</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">7. string：字符串。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "MapView"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(0,255,0)">apiKey</span>" format = "<span style="color: rgb(255,0,0)">string</span>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;com.google.android.maps.MapView<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_width = "fill_parent"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height = "fill_parent"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:<span style="color: rgb(0,255,0)">apiKey</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(255,0,0)">0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">8. fraction：百分数。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name="RotateDrawable"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "visible" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "fromDegrees" format = "float" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "toDegrees" format = "float" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(255,0,255)">pivotX</span>" format = "<span style="color: rgb(0,0,255)">fraction</span>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(255,0,255)">pivotY</span>" format = "<span style="color: rgb(0,0,255)">fraction</span>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "drawable" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;rotate</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:android = "<a style="color: rgb(51,102,153); text-decoration: none" href="http://schemas.android.com/apk/res/android">http://schemas.android.com/apk/res/android</a>"<span class="Apple-converted-space">&nbsp;</span><br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:interpolator = "@anim/动画ID"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:fromDegrees = "0"<span class="Apple-converted-space">&nbsp;</span><br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:toDegrees = "360"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(255,0,255)">pivotX</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(0,0,255)">200%</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(255,0,255)">pivotY</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(0,0,255)">300%</span>"<span class="Apple-converted-space">&nbsp;</span><br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:duration = "5000"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:repeatMode = "restart"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:repeatCount = "infinite"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">9. enum：枚举值。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name="名称"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name="<span style="color: rgb(0,255,0)">orientation</span>"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;<span style="color: rgb(255,0,0)">enum<span class="Apple-converted-space">&nbsp;</span></span>name="<span style="color: rgb(255,0,0)">horizontal</span>" value="0" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<span style="color: rgb(255,0,0)">enum</span><span class="Apple-converted-space">&nbsp;</span>name="<span style="color: rgb(255,0,0)">vertical</span>" value="1" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attr&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;LinearLayout</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:android = "<a style="color: rgb(51,102,153); text-decoration: none" href="http://schemas.android.com/apk/res/android">http://schemas.android.com/apk/res/android</a>"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(0,255,0)">orientation</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(255,0,0)">vertical</span>"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_width = "fill_parent"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_height = "fill_parent"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/LinearLayout&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">10. flag：位或运算。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name="名称"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name="<span style="color: rgb(255,0,255)">windowSoftInputMode</span>"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag<span class="Apple-converted-space">&nbsp;</span></span>name = "<span style="color: rgb(0,0,255)">stateUnspecified</span>" value = "0" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag</span><span class="Apple-converted-space">&nbsp;</span>name = "<span style="color: rgb(0,0,255)">stateUnchanged</span>" value = "1" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag<span class="Apple-converted-space">&nbsp;</span></span>name = "<span style="color: rgb(0,0,255)">stateHidden</span>" value = "2" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag</span><span class="Apple-converted-space">&nbsp;</span>name =&nbsp;"<span style="color: rgb(0,0,255)">stateAlwaysHidden</span>" value = "3" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag</span><span class="Apple-converted-space">&nbsp;</span>name = "<span style="color: rgb(0,0,255)">stateVisible</span>" value = "4" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag</span><span class="Apple-converted-space">&nbsp;</span>name = "<span style="color: rgb(0,0,255)">stateAlwaysVisible</span>" value = "5" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag<span class="Apple-converted-space">&nbsp;</span></span>name = "<span style="color: rgb(0,0,255)">adjustUnspecified</span>" value = "0x00" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag</span><span class="Apple-converted-space">&nbsp;</span>name = "<span style="color: rgb(0,0,255)">adjustResize</span>" value = "0x10" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag</span><span class="Apple-converted-space">&nbsp;</span>name = "<span style="color: rgb(0,0,255)">adjustPan</span>" value = "0x20" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<span style="color: rgb(0,0,255)">flag</span><span class="Apple-converted-space">&nbsp;</span>name = "<span style="color: rgb(0,0,255)">adjustNothing</span>" value = "0x30" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/attr&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp; （2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;activity</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:name = ".StyleAndThemeActivity"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:label = "@string/app_name"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(255,0,255)">windowSoftInputMode<span class="Apple-converted-space">&nbsp;</span></span>= "<span style="color: rgb(0,0,255)">stateUnspecified | stateUnchanged　|　stateHidden</span>"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;intent-filter&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action android:name = "android.intent.action.MAIN" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;category android:name = "android.intent.category.LAUNCHER" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/intent-filter&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/activity&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(255,0,0)">注意：</span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;属性定义时可以指定多种类型值。</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; （1）属性定义：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;declare-styleable name = "名称"&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;attr name = "<span style="color: rgb(0,255,0)">background</span>" format = "<span style="color: rgb(255,0,0)">reference|color</span>" /&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/declare-styleable&gt;</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;（2）属性使用：</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ImageView</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:layout_width = "42dip"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height = "42dip"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:<span style="color: rgb(0,255,0)">background</span><span class="Apple-converted-space">&nbsp;</span>= "<span style="color: rgb(255,0,0)">@drawable/图片ID|#00FF00</span>"</p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/423764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-03-23 22:43 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/03/23/423764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>showDialog()、onPrepareDialog()和onCreateDialog()的关系</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/02/03/422678.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Tue, 03 Feb 2015 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/02/03/422678.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/422678.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/02/03/422678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/422678.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/422678.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: showDialog()调用createDialog()和onPrepareDialog()，其中createDialog()调用onCreateDialog()。例子如下所示Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/ZouYonghui/archive/2015/02/03/422678.html'>阅读全文</a><img src ="http://www.blogjava.net/ZouYonghui/aggbug/422678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-02-03 08:55 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/02/03/422678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android Vibrator 使用</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422514.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 28 Jan 2015 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422514.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/422514.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/422514.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/422514.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">private Vibrator vibrator;</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px"><br /></span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px"><span style="color: rgb(204,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;取得震动服务的句柄</span><br /></span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;或者<span class="Apple-converted-space">&nbsp;</span><span style="font-size: 18px">vibrator = (Vibrator)</span>getApplication().getSystemService(Service.VIBRATOR_SERVICE);<br /></span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(204,0,0); font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;开始震动有两个接口</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 .&nbsp;&nbsp; vibrator.vibrate(2000);//震动指定时间 ，数据类型long，单位为毫秒，一毫秒为1/1000秒</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;&nbsp;&nbsp; vibrator.vibrate(new long[]{100,10,100,1000}, -1);//按照指定的模式去震动。</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;数组参数意义：第一个参数为等待指定时间后开始震动，震动时间为第二个参数。后边的参数依次为等待震动和震动的时间<br /></span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;第二个参数为重复次数，-1为不重复，0为一直震动&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br /></span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px"><br /></span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px"><span style="color: rgb(204,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;取消震动</span><br /></span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vibrator.cancel();//取消震动，立即停止震动</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 震动为一直震动的话，如果不取消震动，就算退出，也会一直震动</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(204,0,0); font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;最重要的，增加权限，否则运行时出错</span></p>
<p style="text-align: left; padding-bottom: 0px; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&lt;uses-permission android:name="android.permission.VIBRATE"/&gt;</span></p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/422514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-01-28 17:18 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AtomicInteger的用法</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422511.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 28 Jan 2015 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422511.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/422511.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422511.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/422511.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/422511.html</trackback:ping><description><![CDATA[<span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。</span><span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值（更新）操作.&nbsp;</span><span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">比如对于++运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。在需要访问两个或两个以上 atomic变量的程序代码（或者是对单一的atomic变量执行两个或两个以上的操作）通常都需要被synchronize以便两者的操作能够被当作是一个atomic的单元。</span><br style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><br style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">java多线程用法-使用AtomicInteger</div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">下面通过简单的两个例子的对比来看一下 AtomicInteger 的强大的功能</div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)">class Counter {</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>private volatile int count = 0;</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><br /></span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>public synchronized void increment() {</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>&nbsp;&nbsp;&nbsp;&nbsp;count++; &nbsp;//若要线程安全执行执行count++，需要加锁</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>}</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><br /></span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>public int getCount() {</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>&nbsp;&nbsp;&nbsp;&nbsp;return count;</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>}</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)">}</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,128,0)"><br /></span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">
<div><span style="color: rgb(0,128,0)">class Counter {</span></div>
<div><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>&nbsp;&nbsp;&nbsp;&nbsp;private AtomicInteger count = new AtomicInteger();&nbsp;</span></div>
<div><span style="color: rgb(0,128,0)"><br /></span></div>
<div><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>public void increment() {</span></div>
<div><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>&nbsp;&nbsp;&nbsp;&nbsp;count.incrementAndGet();</span></div>
<div><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>}</span></div>
<div><span style="color: rgb(0,128,0)">&nbsp; &nbsp; &nbsp; &nbsp;//使用AtomicInteger之后，不需要加锁，也可以实现线程安全。</span></div>
<div><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>public int getCount() {</span></div>
<div><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>&nbsp;&nbsp;&nbsp;&nbsp;return count.get();</span></div>
<div><span style="color: rgb(0,128,0)"><span style="white-space: pre"></span>}</span></div>
<div><span style="color: rgb(0,128,0)">}</span></div></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><br /></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">从上面的例子中我们可以看出：使用AtomicInteger是非常的安全的</div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: Helvetica, Tahoma, Arial, sans-serif">那么为什么不使用记数器自加呢，例如count++这样的，因为这种计数是线程不安全的，高并发访问时统计会有误，而AtomicInteger为什么能够达到多而不乱，处理高并发应付自如呢？</span></div>
<div style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">
<div>这是由硬件提供原子操作指令实现的。在非激烈竞争的情况下，开销更小，速度更快。Java.util.concurrent中实现的原子操作类包括：</div>
<div>AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference。</div></div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/422511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-01-28 16:50 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/01/28/422511.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>没插内存卡，可能出现的问题</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/01/22/422351.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Thu, 22 Jan 2015 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/01/22/422351.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/422351.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/01/22/422351.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/422351.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/422351.html</trackback:ping><description><![CDATA[01-21 20:58:10.615: E/HwLauncher(3286): Launcher dialog dismiss failed : java.lang.IllegalArgumentException: no dialog with id 1 was ever shown via Activity#showDialog<br />01-21 20:58:10.715: E/SubmitMessage(8010): Submit string: submit:trigger=0,bugtype=2,modulename=com.zhihe.xqsh,level=1,testtype=NORMAL,path=/data/log/unzip/H60-L01_V100R001CHNC00B307_DU2SSE1472000007_20150121205810_crash<br />01-21 20:58:10.940: E/HwSystemManager(3431): HoldService:mAppInfo == null<br />01-21 20:58:10.960: E/HwSystemManager(3431): HoldService:mAppInfo == null<br />01-21 20:58:12.745: E/HwLauncher(3286): Launcher dialog dismiss failed : java.lang.IllegalArgumentException: no dialog with id 1 was ever shown via Activity#showDialog<br />01-21 20:58:15.230: E/Thermal-daemon(2421): [ap] temp_new :35&nbsp; temp_old :34<br />01-21 20:58:20.230: E/Thermal-daemon(2421): [ap] temp_new :34&nbsp; temp_old :35<br />01-21 20:58:20.235: E/Thermal-daemon(2421): Report temperature: [ap] temp :34&nbsp; report_threshold:1<br /><br />当用到FinalBitmap时，及对图片进行异步缓存的情况下，第三方包可能用到了存储卡<img src ="http://www.blogjava.net/ZouYonghui/aggbug/422351.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-01-22 11:21 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/01/22/422351.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android中requestFocus</title><link>http://www.blogjava.net/ZouYonghui/archive/2015/01/20/422298.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Tue, 20 Jan 2015 07:32:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2015/01/20/422298.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/422298.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2015/01/20/422298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/422298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/422298.html</trackback:ping><description><![CDATA[<p style="border-bottom: 0px; text-align: left; border-left: 0px; padding-bottom: 0px; text-transform: none; background-color: rgb(152,183,116); list-style-type: none; text-indent: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; font: 14px/21px simsun; word-wrap: normal; white-space: normal; letter-spacing: normal; color: rgb(85,85,85); word-break: normal; border-top: 0px; border-right: 0px; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="line-height: 21px; font-family: 宋体; word-wrap: normal; word-break: normal">标签用于指定屏幕内的焦点</span><span style="line-height: 21px; font-family: Arial, sans-serif; word-wrap: normal; word-break: normal" lang="EN-US" xml:lang="EN-US">View</span><span style="line-height: 21px; font-family: 宋体; word-wrap: normal; word-break: normal">。</span></p>
<p style="border-bottom: 0px; text-align: left; border-left: 0px; padding-bottom: 0px; text-transform: none; background-color: rgb(152,183,116); list-style-type: none; text-indent: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; font: 14px/21px simsun; word-wrap: normal; white-space: normal; letter-spacing: normal; color: rgb(85,85,85); word-break: normal; border-top: 0px; border-right: 0px; word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="line-height: 21px; font-family: 宋体; word-wrap: normal; word-break: normal">例如我们点击tab键或enter键焦点自动进入下一个输入框</span><span style="line-height: 21px; font-family: Arial, sans-serif; word-wrap: normal; word-break: normal" lang="EN-US" xml:lang="EN-US"><br /></span><span style="line-height: 21px; font-family: 宋体; word-wrap: normal; word-break: normal">用法</span><span style="line-height: 21px; font-family: Arial, sans-serif; word-wrap: normal; word-break: normal" lang="EN-US" xml:lang="EN-US">:</span><span class="Apple-converted-space">&nbsp;</span><span style="line-height: 21px; font-family: 宋体; word-wrap: normal; word-break: normal">将标签置于</span><span style="line-height: 21px; font-family: Arial, sans-serif; word-wrap: normal; word-break: normal" lang="EN-US" xml:lang="EN-US">Views</span><span style="line-height: 21px; font-family: 宋体; word-wrap: normal; word-break: normal">标签内部</span><span style="line-height: 21px; font-family: Arial, sans-serif; word-wrap: normal; word-break: normal" lang="EN-US" xml:lang="EN-US"><br /><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><span class="Apple-converted-space">&nbsp;</span>&lt;EditText id="@+id/text"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><span class="Apple-converted-space">&nbsp;</span>android:layout_width="fill_parent"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><span class="Apple-converted-space">&nbsp;</span>android:layout_height="wrap_content"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><span class="Apple-converted-space">&nbsp;</span>android:layout_weight="0"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><span class="Apple-converted-space">&nbsp;</span>android:paddingBottom="4"&gt;<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><span class="Apple-converted-space">&nbsp;</span>&lt;requestFocus /&gt;<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><span class="Apple-converted-space">&nbsp;</span>&lt;/EditText&gt;</span></p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/422298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2015-01-20 15:32 <a href="http://www.blogjava.net/ZouYonghui/archive/2015/01/20/422298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android中requestFocus</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/11/27/420667.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 26 Nov 2014 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/11/27/420667.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/420667.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/11/27/420667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/420667.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/420667.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; color: #555555; font-family: simsun; background-color: #98b774;"><span style="word-wrap: normal; word-break: normal; font-family: 宋体;">标签用于指定屏幕内的焦点</span><span xml:lang="EN-US" style="word-wrap: normal; word-break: normal; font-family: Arial, sans-serif;">View</span><span style="word-wrap: normal; word-break: normal; font-family: 宋体;">。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; color: #555555; font-family: simsun; background-color: #98b774;"><span style="word-wrap: normal; word-break: normal; font-family: 宋体;">例如我们点击tab键或enter键焦点自动进入下一个输入框</span><span xml:lang="EN-US" style="word-wrap: normal; word-break: normal; font-family: Arial, sans-serif;"><br /></span><span style="word-wrap: normal; word-break: normal; font-family: 宋体;">用法</span><span xml:lang="EN-US" style="word-wrap: normal; word-break: normal; font-family: Arial, sans-serif;">:</span>&nbsp;<span style="word-wrap: normal; word-break: normal; font-family: 宋体;">将标签置于</span><span xml:lang="EN-US" style="word-wrap: normal; word-break: normal; font-family: Arial, sans-serif;">Views</span><span style="word-wrap: normal; word-break: normal; font-family: 宋体;">标签内部</span><span xml:lang="EN-US" style="word-wrap: normal; word-break: normal; font-family: Arial, sans-serif;"><br /><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;&lt;EditText id="@+id/text"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;android:layout_width="fill_parent"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;android:layout_height="wrap_content"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;android:layout_weight="0"<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;android:paddingBottom="4"&gt;<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;&lt;requestFocus /&gt;<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;&lt;/EditText&gt;<br /><br /><br /></span></p><pre id="best-content-1564174073" accuse="aContent" class="best-text mb-10" style="margin-top: 0px; margin-bottom: 10px; padding: 0px; font-family: arial, 'courier new', courier, 宋体, monospace; white-space: pre-wrap; word-wrap: break-word; color: #333333; line-height: 24px; background-color: #f1fedd;">android:ems = "10" 设置TextView或者Edittext的宽度为10个字符的宽度。当设置该属性后，控件显示的长度就为10个字符的长度，超出的部分将不显示。</pre><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; color: #555555; font-family: simsun; background-color: #98b774;"><span xml:lang="EN-US" style="word-wrap: normal; word-break: normal; font-family: Arial, sans-serif;"><br />转载：</span><span style="font-family: verdana, 'courier new';">http://blog.sina.com.cn/s/blog_90cdca4c01011kdc.html</span></p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/420667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-11-27 00:11 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/11/27/420667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>adapter convertView为null</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/11/26/420612.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 26 Nov 2014 05:40:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/11/26/420612.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/420612.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/11/26/420612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/420612.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/420612.html</trackback:ping><description><![CDATA[<div>java.lang.NullPointerException</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.AbsListView.obtainView(AbsListView.java:2298)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.ListView.onMeasure(ListView.java:1175)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2310)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.View.measure(View.java:16515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1958)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1155)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1337)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1042)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5721)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.Choreographer.doCallbacks(Choreographer.java:574)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.Choreographer.doFrame(Choreographer.java:544)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.os.Handler.handleCallback(Handler.java:733)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.os.Handler.dispatchMessage(Handler.java:95)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.os.Looper.loop(Looper.java:136)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at android.app.ActivityThread.main(ActivityThread.java:5050)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at java.lang.reflect.Method.invokeNative(Native Method)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at java.lang.reflect.Method.invoke(Method.java:515)</div><div>11-26 10:05:25.363: E/AndroidRuntime(28212): <span style="white-space:pre">	</span>at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)<br /><br />原因是：adapter中返回的时候convertView为null.<br /></div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/420612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-11-26 13:40 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/11/26/420612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PagerAdapter实现图片循环左右切换</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/10/24/419007.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Fri, 24 Oct 2014 09:53:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/10/24/419007.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/419007.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/10/24/419007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/419007.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/419007.html</trackback:ping><description><![CDATA[<div>Exception:<br />&nbsp; &nbsp; 10-24 17:43:15.112: E/AndroidRuntime(11888): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.ViewGroup.addViewInner(ViewGroup.java:3596)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.ViewGroup.addView(ViewGroup.java:3449)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.support.v4.view.ViewPager.addView(ViewPager.java:1305)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.ViewGroup.addView(ViewGroup.java:3394)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.ViewGroup.addView(ViewGroup.java:3370)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at com.zhihe.xqsh.adapter.IndexTopPagerAdapter.instantiateItem(IndexTopPagerAdapter.java:72)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:833)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.support.v4.view.ViewPager.populate(ViewPager.java:1017)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.support.v4.view.ViewPager.populate(ViewPager.java:915)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.support.v4.view.ViewPager$3.run(ViewPager.java:245)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.Choreographer.doCallbacks(Choreographer.java:574)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.Choreographer.doFrame(Choreographer.java:543)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.os.Handler.handleCallback(Handler.java:733)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.os.Handler.dispatchMessage(Handler.java:95)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.os.Looper.loop(Looper.java:136)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at android.app.ActivityThread.main(ActivityThread.java:5050)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at java.lang.reflect.Method.invokeNative(Native Method)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at java.lang.reflect.Method.invoke(Method.java:515)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)</div><div>10-24 17:43:15.112: E/AndroidRuntime(11888): <span style="white-space:pre">	</span>at dalvik.system.NativeStart.main(Native Method)</div><div>10-24 17:43:15.132: I/Process(11888): Sending signal. PID: 11888 SIG: 9<br /><br />原因：<br />&nbsp; &nbsp; 当图片向左滑动的时候，之后执行instantiateItem方法，而不去执行删除方法，所以出现上述异常<br />&nbsp; &nbsp; 所以在instantiateItem方法中执行删除操作，如下：<br />&nbsp; &nbsp; View child = mPageViewList.get(position);<div><span style="white-space:pre">		</span>if(child.getParent()!=null){</div><div><span style="white-space:pre">			</span>((ViewPager)container).removeView(child);</div><div><span style="white-space:pre">		</span>}</div>&nbsp; &nbsp; 注意，在此执行了删除操作之后，把destroyItem方法中的删除去掉，因为，如果不去掉向左滑动的时候，会显示为空，原因如下：打印url是进行加载View，当加载完成之后会去执行destroyItem中的方法，所以，需要把destroyItem中的删除去掉。<br /><div>10-24 17:49:14.452: W/(16419): ----zhihe---- IndextoppagerAdapter instantiateItem position:0</div><div>10-24 17:49:14.452: W/(16419): ----zhihe---- IndextoppagerAdapter instantiateItem image:http://ys.rili.com.cn/images/image/201401/0111174780.jpg</div><div>10-24 17:49:14.462: W/(16419): ----zhihe---- IndextoppagerAdapter destroyItem position:0</div></div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/419007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-10-24 17:53 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/10/24/419007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android 混编源代码</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/10/21/418901.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Tue, 21 Oct 2014 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/10/21/418901.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/418901.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/10/21/418901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/418901.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/418901.html</trackback:ping><description><![CDATA[<div>http://blog.csdn.net/asmcvc/article/details/9948419<br /><br />举例子：<br /><div>-optimizationpasses 5</div><div>-dontusemixedcaseclassnames</div><div>-dontskipnonpubliclibraryclasses</div><div>-dontpreverify</div><div>-verbose</div><div>-dontwarn</div><div></div><div>-dontskipnonpubliclibraryclassmembers</div><div>-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*</div><div></div><div>-libraryjars libs/afinal-0.2.1-bin.jar</div><div>-libraryjars libs/armeabi/libBaiduMapSDK_v3_1_0.so &nbsp;#地图相关的C++编译的可执行文件（引擎）不要混淆</div><div>-libraryjars libs/armeabi/liblocSDK4d.so &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #定位相关的C++编译的可执行文件（引擎）不要混淆</div><div>-libraryjars libs/afinal-0.2.1-bin.jar</div><div>-libraryjars libs/android-support-v4.jar</div><div>-libraryjars libs/android-support-v7-recyclerview.jar</div><div>-libraryjars libs/apache_httpClient_full_v43.jar</div><div>-libraryjars libs/support-annotations-21.0.0-rc1.jar</div><div>-libraryjars libs/locSDK_4.2.jar</div><div>-libraryjars libs/baidumapapi_v3_1_0.jar</div><div></div><div>-keep class com.baidu.** { *; } &nbsp;&nbsp;</div><div>-keep class vi.com.gdi.bgl.android.**{*;}</div><div></div><div>-keep public class * extends android.app.Fragment</div><div>-keep public class * extends android.app.Activity</div><div>-keep public class * extends android.app.Application</div><div>-keep public class * extends android.app.Service</div><div>-keep public class * extends android.content.BroadcastReceiver</div><div>-keep public class * extends android.content.ContentProvider</div><div>-keep public class * extends android.app.backup.BackupAgentHelper</div><div>-keep public class * extends android.preference.Preference</div><div>-keep public class * extends android.support.v4.**</div><div>-keep public class com.android.vending.licensing.ILicensingService</div><div></div><div>-keep class android.support.annotation.** { *; }</div><div>-keep class org.apache.http43.** { *; }</div><div>-keep class android.support.v7.widget.** { *; }</div><div>-keep class net.tsz.afinal.** { *; }</div><div>-keep class com.alibaba.fastjson.** { *; }&nbsp;</div><div>-keep class android.support.v4.** { *; }</div><div></div><div>-keepclasseswithmembernames class * {</div><div>&nbsp; &nbsp; native &lt;methods&gt;;</div><div>}</div><div></div><div>-keepclasseswithmembers class * {</div><div>&nbsp; &nbsp; public &lt;init&gt;(android.content.Context, android.util.AttributeSet);</div><div>}</div><div></div><div></div><div></div><div>-keepclasseswithmembers class * {</div><div>&nbsp; &nbsp; public &lt;init&gt;(android.content.Context, android.util.AttributeSet, int);</div><div>}</div><div></div><div>-keepclassmembers class * extends android.app.Activity {</div><div>&nbsp; &nbsp;public void *(android.view.View);</div><div>}</div><div></div><div>-keepclassmembers enum * {</div><div>&nbsp; &nbsp; public static **[] values();</div><div>&nbsp; &nbsp; public static ** valueOf(java.lang.String);</div><div>}</div><div>-keepclassmembers class * implements java.io.Serializable {</div><div>&nbsp; &nbsp; static final long serialVersionUID;</div><div>&nbsp; &nbsp; private static final java.io.ObjectStreamField[] serialPersistentFields;</div><div>&nbsp; &nbsp; private void writeObject(java.io.ObjectOutputStream);</div><div>&nbsp; &nbsp; private void readObject(java.io.ObjectInputStream);</div><div>&nbsp; &nbsp; java.lang.Object writeReplace();</div><div>&nbsp; &nbsp; java.lang.Object readResolve();</div><div>}</div><div></div><div>-keep class * implements android.os.Parcelable {</div><div>&nbsp; public static final android.os.Parcelable$Creator *;</div><div>}</div><div></div></div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/418901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-10-21 11:37 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/10/21/418901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android上传文件</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417817.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Thu, 11 Sep 2014 00:16:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417817.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/417817.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/417817.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/417817.html</trackback:ping><description><![CDATA[例子如下：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp; 1</span>&nbsp;File&nbsp;file&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;File(filePath);<br /><span style="color: #008080; ">&nbsp;&nbsp;2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(file.exists()){<br /><span style="color: #008080; ">&nbsp;&nbsp;3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;END&nbsp;=&nbsp;"\r\n";<br /><span style="color: #008080; ">&nbsp;&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;PREFIX&nbsp;=&nbsp;"--"&nbsp;;<br /><span style="color: #008080; ">&nbsp;&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;BOUNDARY&nbsp;=&nbsp;&nbsp;UUID.randomUUID().toString();&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">边界标识&nbsp;&nbsp;&nbsp;随机生成</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;CONTENT_TYPE&nbsp;=&nbsp;"multipart/form-data";&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">内容类型</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;inputStream&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">&nbsp;&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fileStream&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">&nbsp;10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataOutputStream&nbsp;dos&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">&nbsp;11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection&nbsp;conn&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">&nbsp;12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;URL(Constant.URL_SECONDHAN_TAKEPHOTOATHAND);<br /><span style="color: #008080; ">&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn&nbsp;=&nbsp;(HttpURLConnection)&nbsp;url.openConnection();<br /><span style="color: #008080; ">&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">设置时间</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setReadTimeout(10*1000);<br /><span style="color: #008080; ">&nbsp;17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setConnectTimeout(10*1000);<br /><span style="color: #008080; ">&nbsp;18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">允许Input,output,不使用Cache</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setDoInput(<span style="color: #0000FF; ">true</span>);<br /><span style="color: #008080; ">&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setDoOutput(<span style="color: #0000FF; ">true</span>);<br /><span style="color: #008080; ">&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setUseCaches(<span style="color: #0000FF; ">false</span>);<br /><span style="color: #008080; ">&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">设置传送的method=POST</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setRequestMethod("POST");<br /><span style="color: #008080; ">&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setRequestProperty("Connection",&nbsp;"Keep-Alive");<br /><span style="color: #008080; ">&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setRequestProperty("Charset",&nbsp;"UTF-8");<br /><span style="color: #008080; ">&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setRequestProperty("Content-Type",&nbsp;CONTENT_TYPE&nbsp;+&nbsp;";boundary="&nbsp;+&nbsp;BOUNDARY);&nbsp;<br /><span style="color: #008080; ">&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;设置DataOutputStream&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;DataOutputStream(conn.getOutputStream());<br /><span style="color: #008080; ">&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sb&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;StringBuffer();<br /><span style="color: #008080; ">&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(PREFIX);<br /><span style="color: #008080; ">&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(BOUNDARY);<br /><span style="color: #008080; ">&nbsp;36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(END);<br /><span style="color: #008080; ">&nbsp;37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/**</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;38</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;这里重点注意：<br /></span><span style="color: #008080; ">&nbsp;39</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;name里面的值为服务器端需要key&nbsp;&nbsp;&nbsp;只有这个key&nbsp;才可以得到对应的文件<br /></span><span style="color: #008080; ">&nbsp;40</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;filename是文件的名字，包含后缀名的&nbsp;&nbsp;&nbsp;比如:abc.png&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;41</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append("Content-Disposition:&nbsp;form-data;&nbsp;name=\"UpLoadFile\";&nbsp;filename=\""+file.getName()+"\""+END);&nbsp;<br /><span style="color: #008080; ">&nbsp;43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append("Content-Type:&nbsp;application/x-zip-compressed;&nbsp;charset=utf-8"+END);<br /><span style="color: #008080; ">&nbsp;44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(END);<br /><span style="color: #008080; ">&nbsp;45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.write(sb.toString().getBytes());<br /><span style="color: #008080; ">&nbsp;46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">取得文件的FileInputStream</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileStream&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;FileInputStream(file);<br /><span style="color: #008080; ">&nbsp;49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">设置每次写入1024bytes</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;bufferSize&nbsp;=&nbsp;1024;<br /><span style="color: #008080; ">&nbsp;52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">byte</span>[]&nbsp;buffer&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;<span style="color: #0000FF; ">byte</span>[bufferSize];<br /><span style="color: #008080; ">&nbsp;53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;length&nbsp;=&nbsp;-1;<br /><span style="color: #008080; ">&nbsp;54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">从文件读取数据至缓冲区</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>((length=fileStream.read(buffer))!=-1){<br /><span style="color: #008080; ">&nbsp;57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.write(buffer,0,length);<br /><span style="color: #008080; ">&nbsp;58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.write(END.getBytes());<br /><span style="color: #008080; ">&nbsp;60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">byte</span>[]&nbsp;end_data&nbsp;=&nbsp;(PREFIX+BOUNDARY+PREFIX+END).getBytes();<br /><span style="color: #008080; ">&nbsp;61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.write(end_data);<br /><span style="color: #008080; ">&nbsp;62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.flush();<br /><span style="color: #008080; ">&nbsp;63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;取得Response内容&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">&nbsp;65</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is&nbsp;=&nbsp;conn.getInputStream();<br /><span style="color: #008080; ">&nbsp;66</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ch;<br /><span style="color: #008080; ">&nbsp;67</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;b&nbsp;=<span style="color: #0000FF; ">new</span>&nbsp;StringBuffer();<br /><span style="color: #008080; ">&nbsp;68</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(&nbsp;(&nbsp;ch&nbsp;=&nbsp;is.read()&nbsp;)&nbsp;!=&nbsp;-1&nbsp;){<br /><span style="color: #008080; ">&nbsp;69</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.append(&nbsp;(<span style="color: #0000FF; ">char</span>)ch&nbsp;);<br /><span style="color: #008080; ">&nbsp;70</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;71</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;=&nbsp;b.toString();<br /><span style="color: #008080; ">&nbsp;72</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;73</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(SocketTimeoutException&nbsp;e)&nbsp;{<br /><span style="color: #008080; ">&nbsp;74</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AgUtils.log("",&nbsp;"&nbsp;upload&nbsp;SocketTimeoutException");<br /><span style="color: #008080; ">&nbsp;75</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mHandler.sendEmptyMessage(4);<br /><span style="color: #008080; ">&nbsp;76</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><span style="color: #008080; ">&nbsp;77</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(ConnectTimeoutException&nbsp;e)&nbsp;{<br /><span style="color: #008080; ">&nbsp;78</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AgUtils.log("",&nbsp;"&nbsp;download&nbsp;ConnectTimeoutException");<br /><span style="color: #008080; ">&nbsp;79</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mHandler.sendEmptyMessage(4);<br /><span style="color: #008080; ">&nbsp;80</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><span style="color: #008080; ">&nbsp;81</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(UnknownHostException&nbsp;e)&nbsp;{<br /><span style="color: #008080; ">&nbsp;82</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AgUtils.log("",&nbsp;"&nbsp;download&nbsp;UnknownHostException");<br /><span style="color: #008080; ">&nbsp;83</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mHandler.sendEmptyMessage(4);<br /><span style="color: #008080; ">&nbsp;84</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><span style="color: #008080; ">&nbsp;85</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(MalformedURLException&nbsp;e)&nbsp;{<br /><span style="color: #008080; ">&nbsp;86</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AgUtils.log("",&nbsp;"&nbsp;download&nbsp;MalformedURLException");<br /><span style="color: #008080; ">&nbsp;87</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mHandler.sendEmptyMessage(4);<br /><span style="color: #008080; ">&nbsp;88</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><span style="color: #008080; ">&nbsp;89</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(ProtocolException&nbsp;e)&nbsp;{<br /><span style="color: #008080; ">&nbsp;90</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AgUtils.log("",&nbsp;"&nbsp;ProtocolException");<br /><span style="color: #008080; ">&nbsp;91</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><span style="color: #008080; ">&nbsp;92</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mHandler.sendEmptyMessage(2);<br /><span style="color: #008080; ">&nbsp;93</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(IOException&nbsp;e)&nbsp;{<br /><span style="color: #008080; ">&nbsp;94</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AgUtils.log("",&nbsp;"&nbsp;IOException");<br /><span style="color: #008080; ">&nbsp;95</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mHandler.sendEmptyMessage(0);<br /><span style="color: #008080; ">&nbsp;96</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><span style="color: #008080; ">&nbsp;97</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">finally</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;98</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XqshService.<span style="color: #0000FF; ">this</span>.sendBroadcast(<span style="color: #0000FF; ">new</span>&nbsp;Intent(INTENT_UPLOAD_COMPLETE));<br /><span style="color: #008080; ">&nbsp;99</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br /><span style="color: #008080; ">100</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(fileStream&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{<br /><span style="color: #008080; ">101</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileStream.close();<br /><span style="color: #008080; ">102</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">103</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(inputStream&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{<br /><span style="color: #008080; ">104</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inputStream.close();<br /><span style="color: #008080; ">105</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">106</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(dos&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{<br /><span style="color: #008080; ">107</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.close();<br /><span style="color: #008080; ">108</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">109</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">110</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(conn&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{<br /><span style="color: #008080; ">111</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.disconnect();<br /><span style="color: #008080; ">112</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">113</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">114</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(IOException&nbsp;e)&nbsp;{<br /><span style="color: #008080; ">115</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><span style="color: #008080; ">116</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">117</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">118</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/417817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-09-11 08:16 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android遮罩层</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417816.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Thu, 11 Sep 2014 00:13:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417816.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/417816.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/417816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/417816.html</trackback:ping><description><![CDATA[1.建立FrameLayout,因为该布局方式只显示下层内容，如：<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;&lt;FrameLayout<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:android="http://schemas.android.com/apk/res/android"<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="match_parent"<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="fill_parent"&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;LinearLayout<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="fill_parent"<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="fill_parent"<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:orientation="vertical"&nbsp;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/main"<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:background="@color/white"<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&gt;<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;LinearLayout&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="fill_parent"<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&gt;<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;GridView<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/gridview_send"<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="fill_parent"<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="fill_parent"<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft="20dp"<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginTop="40dp"<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:listSelector="@color/bule_overlay"<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:numColumns="4"&nbsp;&gt;<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/GridView&gt;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/LinearLayout&gt;<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ImageView&nbsp;<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="fill_parent"<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:src="@drawable/service_public_diver"<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft="20dp"<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginRight="20dp"<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginTop="40px"<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;&nbsp;<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;EditText<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/issueContent"<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="fill_parent"<br /><span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"<br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:minLines="4"<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:gravity="top"<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft="20dp"<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginRight="20dp"<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginTop="30px"<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textColor="#e3e3e3"<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:hint="请输入内容"<br /><span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:background="@null"<br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textSize="46px"/&gt;<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ImageView&nbsp;<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="fill_parent"<br /><span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"<br /><span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:src="@drawable/service_public_diver"<br /><span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft="20dp"<br /><span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginRight="20dp"<br /><span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginTop="40dp"<br /><span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;&nbsp;<br /><span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/LinearLayout&gt;<br /><span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;LinearLayout&nbsp;<br /><span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/layerMask"<br /><span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="fill_parent"<br /><span style="color: #008080; ">59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="fill_parent"<br /><span style="color: #008080; ">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:orientation="vertical"&nbsp;<br /><span style="color: #008080; ">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:background="@drawable/common_title_back"<br /><span style="color: #008080; ">62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:visibility="gone"&gt;<br /><span style="color: #008080; ">63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/LinearLayout&gt;<br /><span style="color: #008080; ">64</span>&nbsp;&lt;/FrameLayout&gt;</div><br />2.在layerMasK中添加view内容<br />&nbsp; &nbsp; private LinearLayout layerMask;//遮罩层<br /><span style="white-space: pre;">&nbsp;   </span>layerMask = (LinearLayout)contentView.findViewById(R.id.layerMask);<br /><div>&nbsp;&nbsp;&nbsp;&nbsp;addInnerLayout(R.layout.fragment_takephotoathand_layer,layerMask);<br />&nbsp; &nbsp; //设置点击不退出遮罩层</div><div><span style="white-space: pre;">&nbsp;   </span>layerMask.setOnTouchListener(new OnTouchListener(){ &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public boolean onTouch(View v, MotionEvent event) { &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; });<br /><br />&nbsp; &nbsp; private void addInnerLayout(int layoutResID,LinearLayout view){</div><div><span style="white-space:pre">		</span>LayoutInflater inflater = (LayoutInflater) ((Activity) mContext).getLayoutInflater();</div><div><span style="white-space:pre">		</span>View CurView = inflater.inflate(layoutResID, null);</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>LinearLayout.LayoutParams lineparam = new LinearLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,</div><div><span style="white-space:pre">				</span>RelativeLayout.LayoutParams.MATCH_PARENT);</div><div><span style="white-space:pre">		</span>view.addView(CurView,lineparam);</div><div><span style="white-space:pre">	</span>}<br />3.控制显示<br />&nbsp; &nbsp; layerMask.setVisibility(View.VISIBLE);</div><img src ="http://www.blogjava.net/ZouYonghui/aggbug/417816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-09-11 08:13 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/09/11/417816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Intent.setFlags方法中的参数值含义</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/05/28/414211.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 28 May 2014 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/05/28/414211.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/414211.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/05/28/414211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/414211.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/414211.html</trackback:ping><description><![CDATA[<span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 14px/26px Arial; white-space: normal; float: none; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">一.&nbsp;</span><span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px/26px Arial; white-space: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">intent.setFlags()方法中的参数值含义：</span><span style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 14px/26px Arial; white-space: normal; float: none; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"></span> 
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 13px"><strong>&nbsp;&nbsp;&nbsp;&nbsp;1.FLAG_ACTIVITY_CLEAR_TOP</strong>：</span><span style="font-size: 13px">例如现在的栈情况为：A B C D 。D此时通过intent跳转到B，如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记，则栈情况变为：A B。如果没有添加这个标记，则栈情况将会变成：A B C D B。也就是说，如果添加了FLAG_ACTIVITY_CLEAR_TOP标记，并且目标Activity在栈中已经存在，则将会把位于该目标activity之上的activity从栈中弹出销毁。这跟上面把B的Launch mode设置成singleTask类似。<span style="color: rgb(255,0,0)">简而言之，跳转到的activity若已在栈中存在，则将其上的activity都销掉。</span></span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 13px"><strong>&nbsp;&nbsp;&nbsp;&nbsp;2.FLAG_ACTIVITY_NEW_TASK：</strong>例如现在栈1的情况是：A B C。C通过intent跳转到D，并且这个intent添加了FLAG_ACTIVITY_NEW_TASK标记，如果D这个Activity在Manifest.xml中的声明中添加了Task affinity，系统首先会查找有没有和D的Task affinity相同的task栈存在，如果有存在，将D压入那个栈，如果不存在则会新建一个D的affinity的栈将其压入。如果D的Task affinity默认没有设置，则会把其压入栈1，变成：A B C D，这样就和不加FLAG_ACTIVITY_NEW_TASK标记效果是一样的了。注意如果试图从非activity的非正常途径启动一个activity（<span style="color: rgb(255,0,0)">例见下文&#8220;<span style="font-size: 13px">intent.setFlags()方法中参数的用例&#8221;</span></span>），比如从一个service中启动一个activity，则intent比如要添加FLAG_ACTIVITY_NEW_TASK标记（<span style="color: rgb(255,0,0)">编者按：activity要存在于activity的栈中，而非activity的途径启动activity时必然不存在一个activity的栈，所以要新起一个栈装入启动的activity</span>）。<span style="color: rgb(255,0,0)">简而言之，跳转到的activity根据情况，可能压在一个新建的栈中。</span></span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 13px"><strong>&nbsp;&nbsp;&nbsp;&nbsp;3.FLAG_ACTIVITY_NO_HISTORY</strong>：例如现在栈情况为：A B C。C通过intent跳转到D，这个intent添加FLAG_ACTIVITY_NO_HISTORY标志，则此时界面显示D的内容，但是它并不会压入栈中。如果按返回键，返回到C，栈的情况还是：A B C。如果此时D中又跳转到E，栈的情况变为：A B C E，此时按返回键会回到C，因为D根本就没有被压入栈中。<span style="color: rgb(255,0,0)">简而言之，跳转到的activity不压在栈中。</span></span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px"><span style="font-size: 13px"><strong>&nbsp;&nbsp;&nbsp;&nbsp;4.FLAG_ACTIVITY_SINGLE_TOP</strong>：和Activity的Launch mode的singleTop类似。如果某个intent添加了这个标志，并且这个intent的目标activity就是栈顶的activity，那么将不会新建一个实例压入栈中。<span style="color: rgb(255,0,0)">简而言之，目标activity已在栈顶则跳转过去，不在栈顶则在栈顶新建activity。</span></span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">二.<span style="font-size: 13px">intent.setFlags()方法中参数的用例：</span></p>
<p style="text-align: left; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-stroke-width: 0px">很多人使用startActivity时候，会碰到如下的异常：<br />Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity&nbsp;&nbsp;context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?<br />都知道，Context中有一个startActivity方法，Activity继承自Context，重载了startActivity方法。如果使用Activity的startActivity方法，不会有任何限制，而如果使用Context的startActivity方法的话，就需要开启一个新的task（<span style="color: rgb(255,0,0)">编者按：参见一.2.的编者按</span>），遇到上面那个异常的，都是因为使用了Context的startActivity方法。解决办法是：Java代码中加一个flag，即intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。这样就可以在新的task里面启动这个Activity了。</p><img src ="http://www.blogjava.net/ZouYonghui/aggbug/414211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-05-28 17:43 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/05/28/414211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android AsyncTask介绍</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/05/08/413440.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Thu, 08 May 2014 09:25:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/05/08/413440.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/413440.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/05/08/413440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/413440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/413440.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: AsyncTask和Handler对比1 ） AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l&nbsp; 简单,快捷l&nbsp; 过程可控&nbsp;&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/ZouYonghui/archive/2014/05/08/413440.html'>阅读全文</a><img src ="http://www.blogjava.net/ZouYonghui/aggbug/413440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-05-08 17:25 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/05/08/413440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android中Service类onStartCommand的返回值问题</title><link>http://www.blogjava.net/ZouYonghui/archive/2014/02/26/410335.html</link><dc:creator>Terry Zou</dc:creator><author>Terry Zou</author><pubDate>Wed, 26 Feb 2014 07:50:00 GMT</pubDate><guid>http://www.blogjava.net/ZouYonghui/archive/2014/02/26/410335.html</guid><wfw:comment>http://www.blogjava.net/ZouYonghui/comments/410335.html</wfw:comment><comments>http://www.blogjava.net/ZouYonghui/archive/2014/02/26/410335.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ZouYonghui/comments/commentRss/410335.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ZouYonghui/services/trackbacks/410335.html</trackback:ping><description><![CDATA[<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px">Android开发的过程中，每次调用startService(Intent)的时候，都会调用该Service对象的onStartCommand(Intent,int,int)方法，然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值，这篇文章就是简单地讲讲int返回值的作用。</div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px">从Android官方文档中，我们知道onStartCommand有4种返回值：</div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px"><br /></div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px">START_STICKY：如果service进程被kill掉，保留service的状态为开始状态，但不保留递送的intent对象。随后系统会尝试重新创建service，由于服务状态为开始状态，所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service，那么参数Intent将为null。</div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px"><br /></div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px">START_NOT_STICKY：&#8220;非粘性的&#8221;。使用这个返回值时，如果在执行完onStartCommand后，服务被异常kill掉，系统不会自动重启该服务。</div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px"><br /></div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px">START_REDELIVER_INTENT：重传Intent。使用这个返回值时，如果在执行完onStartCommand后，服务被异常kill掉，系统会自动重启该服务，并将Intent的值传入。</div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px"><br /></div>
<div style="text-align: left; text-transform: none; background-color: rgb(191,205,172); text-indent: 0px; letter-spacing: normal; font: 14px/21px simsun; white-space: normal; color: rgb(50,62,50); word-spacing: 0px; -webkit-text-stroke-width: 0px">
<div><br /></div>
<div>START_STICKY_COMPATIBILITY：START_STICKY的兼容版本，但不保证服务被kill后一定能重启。</div></div><br /><br />可能导致异常如下<br />java.lang.RuntimeException: Unable to start service<span style="color: red">&nbsp;</span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#111;&#109;&#46;&#97;&#103;&#46;&#114;&#104;&#103;&#46;&#100;&#111;&#119;&#110;&#108;&#111;&#97;&#100;&#46;&#68;&#111;&#119;&#110;&#108;&#111;&#97;&#100;&#80;&#97;&#115;&#115;&#83;&#101;&#114;&#118;&#105;&#99;&#101;&#64;&#52;&#55;&#97;&#56;&#102;&#53;&#98;&#48;"><span style="color: red">serviceName</span></a> with null: java.lang.NullPointerException<br />&nbsp;at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3221)<br />&nbsp;at android.app.ActivityThread.access$2100(ActivityThread.java:156)<br />&nbsp;at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)<br />&nbsp;at android.os.Handler.dispatchMessage(Handler.java:102)<br />&nbsp;at android.os.Looper.loop(Looper.java:157)<br />&nbsp;at android.app.ActivityThread.main(ActivityThread.java:5872)<br />&nbsp;at java.lang.reflect.Method.invokeNative(Native Method)<br />&nbsp;at java.lang.reflect.Method.invoke(Method.java:515)<br />&nbsp;at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1069)<br />&nbsp;at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:885)<br />&nbsp;at dalvik.system.NativeStart.main(Native Method)<br />Caused by: java.lang.NullPointerException<br />&nbsp;at com.ag.rhg.download.DownloadPassService.onStart(Unknown Source)<br />&nbsp;at android.app.Service.onStartCommand(Service.java:450)<br />&nbsp;at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3187)<br />&nbsp;... 10 more<br /><br /><br />解决办法：在Service onStart方法中做判断<br />if (null != intent) {<br />&nbsp;&nbsp;&nbsp;&nbsp;。。。。。。。<br />}<img src ="http://www.blogjava.net/ZouYonghui/aggbug/410335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ZouYonghui/" target="_blank">Terry Zou</a> 2014-02-26 15:50 <a href="http://www.blogjava.net/ZouYonghui/archive/2014/02/26/410335.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>