<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>转烛空间Android &#187; </title>
	<atom:link href="http://wangliping.net/category/androidx86/feed" rel="self" type="application/rss+xml" />
	<link>http://wangliping.net</link>
	<description>记录生活，学习技术</description>
	<lastBuildDate>Fri, 30 Jul 2010 02:30:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Android添加桌面快捷图标</title>
		<link>http://wangliping.net/android-add-shortcut</link>
		<comments>http://wangliping.net/android-add-shortcut#comments</comments>
		<pubDate>Fri, 30 Jul 2010 02:28:47 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[shortcut]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-add-shortcut</guid>
		<description><![CDATA[写了一个应用，可能很想能够在桌面上就创建它的快捷图标，虽然Android即使用手动添加快捷图标也很容易，但是如果程序能够主动在运行时就给设定一个快捷图标，可能就能吸引用户来用了，呵呵～～查阅了一下资料，写了如下一些代码。虽然能够创建成功，并且似乎还能正确地运行，不过说实话，连自己都不知道有没有什么问题。]]></description>
			<content:encoded><![CDATA[<p>　　写了一个应用，可能很想能够在桌面上就创建它的快捷图标，虽然Android即使用手动添加快捷图标也很容易，但是如果程序能够主动在运行时就给设定一个快捷图标，可能就能吸引用户来用了，呵呵～～查阅了一下资料，写了如下一些代码。虽然能够创建成功，并且似乎还能正确地运行，不过说实话，连自己都不知道有没有什么问题。</p>
</p>
<p><span id="more-712"></span>
<p>　　因为需要com.android.launcher.permission.INSTALL_SHORTCUT权限，所以首先在AndroidManifest.xml里添加这么一句：</p>
<blockquote><p>&lt;uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /&gt;</p>
</blockquote>
<p>　　然后就是如下代码来添加快捷图标了。</p>
<p>
<div class="source" style="color: rgb(0,0,0); font-family: '[object HTMLOptionElement]','Consolas','Lucida Console','Courier New'; background-color: rgb(249,247,237)"><span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,170,170)">void</span> <span style="color: rgb(0,170,0)">createShorcut</span>() <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">Intent</span> <span style="color: rgb(0,0,0)">thisIntent</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">Intent</span>();<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">thisIntent</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setClass</span>(<span style="color: rgb(0,0,170)">this</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">AllTestInOne</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">class</span>);<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">ACTION_ADD_SHORTCUT</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"com.android.launcher.action.INSTALL_SHORTCUT"</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">Intent</span> <span style="color: rgb(0,0,0)">addShortcut</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">Intent</span>(<span style="color: rgb(0,0,0)">ACTION_ADD_SHORTCUT</span>);</p>
<p>&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">Parcelable</span> <span style="color: rgb(0,0,0)">icon</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">Intent</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">ShortcutIconResource</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">fromContext</span>(<span style="color: rgb(0,0,170)">this</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">R</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">drawable</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">icon</span>);</p>
<p>&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">addShortcut</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">putExtra</span>(<span style="color: rgb(0,0,0)">Intent</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">EXTRA_SHORTCUT_ICON_RESOURCE</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">icon</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">addShortcut</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">putExtra</span>(<span style="color: rgb(0,0,0)">Intent</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">EXTRA_SHORTCUT_NAME</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(170,85,0)">"AllTestInOne"</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">addShortcut</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">putExtra</span>(<span style="color: rgb(0,0,0)">Intent</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">EXTRA_SHORTCUT_INTENT</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">thisIntent</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">sendBroadcast</span>(<span style="color: rgb(0,0,0)">addShortcut</span>);<br /><span style="color: rgb(0,0,0)">}</span></div>
</p>
<p>　　这段代码的第三行设置intent我不知道是否一定可以这样设置，不过测试的时候还真是启动了我的应用，暂时没发现问题，不过个人觉得这始终是个问题，哪有这样设置的？呵呵～</p>
<p>　　再有一点就是这个图标能够永久存在吗？不知道呢。。。</p>
<p>　　当然现在运行是没有问题的，那权且这样用着。另我的Activity名字是AllTestInOne，所以地三行用的是thisIntent.setClass(this, AllTestInOne.class);读者自己另行换用自己的Activity。</p>
<p align="center"><strong>原创文章，如需转载请注明【</strong><a href="http://wangliping.net"><strong>转烛空间</strong></a><strong>】：</strong><a href="http://wangliping.net"><strong>http://wangliping.net</strong></a><strong> </strong>
<p align="center"><strong>本文地址：</strong><a><strong>http://wangliping.net/android-add-shortcut</strong></a></p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-ksoap2-weather" title="Android利用ksoap2写天气预报应用">Android利用ksoap2写天气预报应用</a></li><li><a href="http://wangliping.net/android-buttonbar-bottom" title="Android将ButtonBar放在屏幕底部">Android将ButtonBar放在屏幕底部</a></li><li><a href="http://wangliping.net/android-tab-bottom" title="Android将TAB选项卡放在屏幕底部">Android将TAB选项卡放在屏幕底部</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/git-clone-spec-branch" title="git-clone指定branch">git-clone指定branch</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-add-shortcut/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android利用ksoap2写天气预报应用</title>
		<link>http://wangliping.net/android-ksoap2-weather</link>
		<comments>http://wangliping.net/android-ksoap2-weather#comments</comments>
		<pubDate>Tue, 01 Jun 2010 07:15:31 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[ksoap2]]></category>
		<category><![CDATA[天气预报]]></category>
		<category><![CDATA[应用]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-ksoap2-weather</guid>
		<description><![CDATA[怎么说呢，天气预报的应用可以说是一抓一大把，不过找一个自己心仪的却并不是很容易。这个程序也是用来练手的，看看到底怎么用ksoap写一个适合自己的应用。ksoap怎么说呢，就是一个封装好的soap发送接收解析库，这也只怪Android没有自带这些。]]></description>
			<content:encoded><![CDATA[<p>　　怎么说呢，天气预报的应用可以说是一抓一大把，不过找一个自己心仪的却并不是很容易。这个程序也是用来练手的，看看到底怎么用ksoap写一个适合自己的应用。ksoap怎么说呢，就是一个封装好的soap发送接收解析库，这也只怪Android没有自带这些。</p>
</p>
<p><span id="more-705"></span>
</p>
<p>　　闲话不多说，上代码（本来是全部贴出来的，后来发现博客毕竟是用来写重点的，更多内容还是访问下面那个给出的源码地址吧）。</p>
<div style="background-color: rgb(249,247,237); font-family: '[object HTMLOptionElement]','Consolas','Lucida Console','Courier New'; color: rgb(0,0,0)" class="source"><span style="color: rgb(0,0,170)">public</span> <span style="color: rgb(0,0,170)">class</span> <span style="color: rgb(0,170,0); text-decoration: underline">Weather</span> <span style="color: rgb(0,0,170)">extends</span> <span style="color: rgb(0,0,0)">Activity</span> <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,0,170)">static</span> <span style="color: rgb(0,0,170)">final</span> <span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">NAMESPACE</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"http://WebXml.com.cn/"</span>;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,0,170)">static</span> <span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">URL</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"http://www.webxml.com.cn/webservices/weatherwebservice.asmx"</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,0,170)">static</span> <span style="color: rgb(0,0,170)">final</span> <span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">METHOD_NAME</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"getWeatherbyCityName"</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,0,170)">static</span> <span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">SOAP_ACTION</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"http://WebXml.com.cn/getWeatherbyCityName"</span>;
<p>&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">public</span> <span style="color: rgb(0,170,170)">void</span> <span style="color: rgb(0,170,0)">getWeather</span>(<span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">cityName</span>) <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">try</span> <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">SoapObject</span> <span style="color: rgb(0,0,0)">rpc</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">SoapObject</span>(<span style="color: rgb(0,0,0)">NAMESPACE</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">METHOD_NAME</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">rpc</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">addProperty</span>(<span style="color: rgb(170,85,0)">"theCityName"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">cityName</span>);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">AndroidHttpTransport</span> <span style="color: rgb(0,0,0)">ht</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">AndroidHttpTransport</span>(<span style="color: rgb(0,0,0)">URL</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ht</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">debug</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,170)">true</span>;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">SoapSerializationEnvelope</span> <span style="color: rgb(0,0,0)">envelope</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">SoapSerializationEnvelope</span>(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">SoapEnvelope</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">VER11</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">envelope</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">bodyOut</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">rpc</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">envelope</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">dotNet</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,170)">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">envelope</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setOutputSoapObject</span>(<span style="color: rgb(0,0,0)">rpc</span>);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ht</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">call</span>(<span style="color: rgb(0,0,0)">SOAP_ACTION</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">envelope</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">debug</span>(<span style="color: rgb(0,0,0)">LOG_TAG</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(170,85,0)">"DUMP&gt;&gt; "</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">ht</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">requestDump</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">debug</span>(<span style="color: rgb(0,0,0)">LOG_TAG</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(170,85,0)">"DUMP&lt;&lt; "</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">ht</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">responseDump</span>);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">SoapObject</span> <span style="color: rgb(0,0,0)">result</span> <span style="color: rgb(0,0,0)">=</span> (<span style="color: rgb(0,0,0)">SoapObject</span>) <span style="color: rgb(0,0,0)">envelope</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">bodyIn</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">SoapObject</span> <span style="color: rgb(0,0,0)">detail</span> <span style="color: rgb(0,0,0)">=</span> (<span style="color: rgb(0,0,0)">SoapObject</span>) <span style="color: rgb(0,0,0)">result</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(170,85,0)">"getWeatherbyCityNameResult"</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">parseWeather</span>(<span style="color: rgb(0,0,0)">detail</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">return</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span> <span style="color: rgb(0,0,170)">catch</span> (<span style="color: rgb(0,0,0)">Exception</span> <span style="color: rgb(0,0,0)">e</span>) <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">e</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">printStackTrace</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,170,170)">void</span> <span style="color: rgb(0,170,0)">parseWeather</span>(<span style="color: rgb(0,0,0)">SoapObject</span> <span style="color: rgb(0,0,0)">detail</span>) <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">date</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">6</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherToday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"今天："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">date</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">split</span>(<span style="color: rgb(170,85,0)">" "</span><span style="color: rgb(0,0,0)">)[</span><span style="color: rgb(0,153,153)">0</span><span style="color: rgb(0,0,0)">];</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherToday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherToday</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n天气："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">date</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">split</span>(<span style="color: rgb(170,85,0)">" "</span><span style="color: rgb(0,0,0)">)[</span><span style="color: rgb(0,153,153)">1</span><span style="color: rgb(0,0,0)">];</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherToday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherToday</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n气温："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">5</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherToday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherToday</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n风力："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">7</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>() <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n"</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">iconToday</span><span style="color: rgb(0,0,0)">[</span><span style="color: rgb(0,153,153)">0</span><span style="color: rgb(0,0,0)">]</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">parseIcon</span>(<span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">8</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">iconToday</span><span style="color: rgb(0,0,0)">[</span><span style="color: rgb(0,153,153)">1</span><span style="color: rgb(0,0,0)">]</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">parseIcon</span>(<span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">9</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherCurrent</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">10</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">date</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">13</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherTomorrow</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"明天："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">date</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">split</span>(<span style="color: rgb(170,85,0)">" "</span><span style="color: rgb(0,0,0)">)[</span><span style="color: rgb(0,153,153)">0</span><span style="color: rgb(0,0,0)">];</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherTomorrow</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherTomorrow</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n天气："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">date</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">split</span>(<span style="color: rgb(170,85,0)">" "</span><span style="color: rgb(0,0,0)">)[</span><span style="color: rgb(0,153,153)">1</span><span style="color: rgb(0,0,0)">];</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherTomorrow</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherTomorrow</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n气温："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">12</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherTomorrow</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherTomorrow</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n风力："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">14</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>() <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n"</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">iconTomorrow</span><span style="color: rgb(0,0,0)">[</span><span style="color: rgb(0,153,153)">0</span><span style="color: rgb(0,0,0)">]</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">parseIcon</span>(<span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">15</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">iconTomorrow</span><span style="color: rgb(0,0,0)">[</span><span style="color: rgb(0,153,153)">1</span><span style="color: rgb(0,0,0)">]</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">parseIcon</span>(<span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">16</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">date</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">18</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherAfterday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"后天："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">date</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">split</span>(<span style="color: rgb(170,85,0)">" "</span><span style="color: rgb(0,0,0)">)[</span><span style="color: rgb(0,153,153)">0</span><span style="color: rgb(0,0,0)">];</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherAfterday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherAfterday</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n天气："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">date</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">split</span>(<span style="color: rgb(170,85,0)">" "</span><span style="color: rgb(0,0,0)">)[</span><span style="color: rgb(0,153,153)">1</span><span style="color: rgb(0,0,0)">];</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherAfterday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherAfterday</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n气温："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">17</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">weatherAfterday</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">weatherAfterday</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n风力："</span> <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">19</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>() <span style="color: rgb(0,0,0)">+</span> <span style="color: rgb(170,85,0)">"\n"</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">iconAfterday</span><span style="color: rgb(0,0,0)">[</span><span style="color: rgb(0,153,153)">0</span><span style="color: rgb(0,0,0)">]</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">parseIcon</span>(<span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">20</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">iconAfterday</span><span style="color: rgb(0,0,0)">[</span><span style="color: rgb(0,153,153)">1</span><span style="color: rgb(0,0,0)">]</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">parseIcon</span>(<span style="color: rgb(0,0,0)">detail</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getProperty</span>(<span style="color: rgb(0,153,153)">21</span><span style="color: rgb(0,0,0)">).</span><span style="color: rgb(30,144,255)">toString</span>());<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span></p>
</div>
<p>　　以下是截图：</p>
<p><a href="http://wangliping.net/wp-content/uploads/2010/06/device.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="device" border="0" alt="device" src="http://wangliping.net/wp-content/uploads/2010/06/device_thumb.png" width="324" height="484"></a> </p>
<p>　　觉得还不够？是的，毕竟博客能写多少呢？给两个地址。当然代码写得非常不够简洁，还请海涵啊。</p>
<p>　　apk：<a title="http://u.115.com/file/f020b51648" href="http://u.115.com/file/f020b51648">http://u.115.com/file/f020b51648</a></p>
<p>　　源码：<a title="http://u.115.com/file/f0c9f83996" href="http://u.115.com/file/f0c9f83996">http://u.115.com/file/f0c9f83996</a></p>
<p align="center"><strong>原创文章，如需转载请注明【</strong><a href="http://wangliping.net"><strong>转烛空间</strong></a><strong>】：</strong><a href="http://wangliping.net"><strong>http://wangliping.net</strong></a><strong> </strong></p>
<p align="center"><strong>本文地址：</strong><a href="http://wangliping.net/android-ksoap2-weather"><strong>http://wangliping.net/android-ksoap2-weather</strong></a></p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-add-shortcut" title="Android添加桌面快捷图标">Android添加桌面快捷图标</a></li><li><a href="http://wangliping.net/android-buttonbar-bottom" title="Android将ButtonBar放在屏幕底部">Android将ButtonBar放在屏幕底部</a></li><li><a href="http://wangliping.net/android-tab-bottom" title="Android将TAB选项卡放在屏幕底部">Android将TAB选项卡放在屏幕底部</a></li><li><a href="http://wangliping.net/easy-tools" title="简单实用的查询工具">简单实用的查询工具</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/git-clone-spec-branch" title="git-clone指定branch">git-clone指定branch</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-ksoap2-weather/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Android将ButtonBar放在屏幕底部</title>
		<link>http://wangliping.net/android-buttonbar-bottom</link>
		<comments>http://wangliping.net/android-buttonbar-bottom#comments</comments>
		<pubDate>Mon, 31 May 2010 08:50:26 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[buttonbar]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-buttonbar-bottom</guid>
		<description><![CDATA[接上篇《Android将TAB选项卡放在屏幕底部》写。上篇提到ButtonBar的方式写底部button，试了试，看起来外观貌似比Tab好看，不过恐怕没有Tab管理Activity方便吧，毕竟一个Tab就是一个Activity，但是这样用Button的话，却并不如此，所以这样的涉及可能虽然好看点，但是管理起来却是相当麻烦。那么暂且把对activity的管理放在一边，只看界面的设计吧。]]></description>
			<content:encoded><![CDATA[<p>　　接上篇《<a href="http://wangliping.net/android-tab-bottom" target="_blank">Android将TAB选项卡放在屏幕底部</a>》写。上篇提到ButtonBar的方式写底部button，试了试，看起来外观貌似比Tab好看，不过恐怕没有Tab管理Activity方便吧，毕竟一个Tab就是一个Activity，但是这样用Button的话，却并不如此，所以这样的涉及可能虽然好看点，但是管理起来却是相当麻烦。那么暂且把对activity的管理放在一边，只看界面的设计吧。</p>
</p>
<p><span id="more-703"></span>
<p>　　要涉及这样的一个buttonbar，主要就是要用到style="@android:style/ButtonBar"这个风格。首先还是来看xml的设计，保存layout/bottombtn.xml</p>
<div class="source" style="color: rgb(0,0,0); font-family: '[object HTMLOptionElement]','Consolas','Lucida Console','Courier New'; background-color: rgb(249,247,237)"><span style="color: rgb(76,131,23)">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span><br /><span style="font-weight: bold; color: rgb(30,144,255)">&lt;LinearLayout</span> <span style="color: rgb(30,144,255)">xmlns:android=</span><span style="color: rgb(170,85,0)">"http://schemas.android.com/apk/res/android"</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:orientation=</span><span style="color: rgb(170,85,0)">"vertical"</span> <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"fill_parent"</span><span style="font-weight: bold; color: rgb(30,144,255)">&gt;</span></p>
<p>&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;TextView</span> <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@+id/textOut"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:padding=</span><span style="color: rgb(170,85,0)">"5px"</span> <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"1"</span><span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span></p>
<p>&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;LinearLayout</span> <span style="color: rgb(30,144,255)">style=</span><span style="color: rgb(170,85,0)">"@android:style/ButtonBar"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:orientation=</span><span style="color: rgb(170,85,0)">"horizontal"</span><span style="font-weight: bold; color: rgb(30,144,255)">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;Button</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@+id/button_weather"</span> <span style="color: rgb(30,144,255)">android:text=</span><span style="color: rgb(170,85,0)">"@string/bottom_weather"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"0dip"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"1"</span><span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;Button</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@+id/button_mail"</span> <span style="color: rgb(30,144,255)">android:text=</span><span style="color: rgb(170,85,0)">"@string/bottom_mail"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"0dip"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"1"</span><span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;Button</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@+id/button_train"</span> <span style="color: rgb(30,144,255)">android:text=</span><span style="color: rgb(170,85,0)">"@string/bottom_train"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"0dip"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"1"</span><span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;Button</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@+id/button_sites"</span> <span style="color: rgb(30,144,255)">android:text=</span><span style="color: rgb(170,85,0)">"@string/bottom_sites"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"0dip"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"1"</span><span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;Button</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@+id/button_stock"</span> <span style="color: rgb(30,144,255)">android:text=</span><span style="color: rgb(170,85,0)">"@string/bottom_stock"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"0dip"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"1"</span><span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span><br />&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;/LinearLayout&gt;</span><br /><span style="font-weight: bold; color: rgb(30,144,255)">&lt;/LinearLayout&gt;</span></div>
<p>　　然后就是关于这个的全部代码了：</p>
<div class="source" style="color: rgb(0,0,0); font-family: '[object HTMLOptionElement]','Consolas','Lucida Console','Courier New'; background-color: rgb(249,247,237)"><span style="color: rgb(0,0,0)">package</span> <span style="color: rgb(0,0,0)">net</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">wangliping</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">popup</span>;</p>
<p><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.app.Activity</span>;<br /><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.os.Bundle</span>;<br /><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.widget.TextView</span>;</p>
<p><span style="color: rgb(0,0,170)">public</span> <span style="color: rgb(0,0,170)">class</span> <span style="color: rgb(0,170,0); text-decoration: underline">BottomBtn</span> <span style="color: rgb(0,0,170)">extends</span> <span style="color: rgb(0,0,0)">Activity</span> <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,0,170)">static</span> <span style="color: rgb(0,0,0)">String</span> <span style="color: rgb(0,0,0)">LOG_TAG</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(170,85,0)">"BottomBtn"</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">private</span> <span style="color: rgb(0,0,0)">TextView</span> <span style="color: rgb(0,0,0)">tv</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(136,136,136)">@Override</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">public</span> <span style="color: rgb(0,170,170)">void</span> <span style="color: rgb(0,170,0)">onCreate</span>(<span style="color: rgb(0,0,0)">Bundle</span> <span style="color: rgb(0,0,0)">savedInstanceState</span>) <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">super</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">onCreate</span>(<span style="color: rgb(0,0,0)">savedInstanceState</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">setContentView</span>(<span style="color: rgb(0,0,0)">R</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">layout</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">bottombtn</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tv</span> <span style="color: rgb(0,0,0)">=</span> (<span style="color: rgb(0,0,0)">TextView</span>)<span style="color: rgb(0,0,0)">findViewById</span>(<span style="color: rgb(0,0,0)">R</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">id</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">textOut</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tv</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setText</span>(<span style="color: rgb(170,85,0)">"http://tools.wangliping.net"</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br /><span style="color: rgb(0,0,0)">}</span></div>
<p>　　如此这般，就形成了下面的这个东西，虽然界面上看起来稍微美观一点，还是上面那句话：管理器Activity不一定很方便哦。</p>
<p><a href="http://wangliping.net/wp-content/uploads/2010/05/device1.png"><img title="device" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="484" alt="device" src="http://wangliping.net/wp-content/uploads/2010/05/device_thumb1.png" width="324" border="0"></a> </p>
<p>参考资料：</p>
<p><a title="http://www.eoeandroid.com/redirect.php?tid=10709&amp;goto=lastpost" href="http://www.eoeandroid.com/redirect.php?tid=10709&amp;goto=lastpost">http://www.eoeandroid.com/redirect.php?tid=10709&amp;goto=lastpost</a></p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-tab-bottom" title="Android将TAB选项卡放在屏幕底部">Android将TAB选项卡放在屏幕底部</a></li><li><a href="http://wangliping.net/android-add-shortcut" title="Android添加桌面快捷图标">Android添加桌面快捷图标</a></li><li><a href="http://wangliping.net/android-ksoap2-weather" title="Android利用ksoap2写天气预报应用">Android利用ksoap2写天气预报应用</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/git-clone-spec-branch" title="git-clone指定branch">git-clone指定branch</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-buttonbar-bottom/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android将TAB选项卡放在屏幕底部</title>
		<link>http://wangliping.net/android-tab-bottom</link>
		<comments>http://wangliping.net/android-tab-bottom#comments</comments>
		<pubDate>Mon, 31 May 2010 04:47:19 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[tab]]></category>
		<category><![CDATA[界面]]></category>
		<category><![CDATA[选项卡]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-tab-bottom</guid>
		<description><![CDATA[今天写Tab的时候由于TAB的跳转问题去查资料，倒反而发现更有趣的问题，就是如何将TAB放置在屏幕的底端。效果如http://www.sisou.cn/read-htm-tid-451.html所示，的确是个好想法，这样貌似也的确漂亮一些，有点类似IPhone里的布局了，呵呵～（其实后来发现这个应该不是用TAB做的，而是ButtonBar做出来的吧，或者是他重写了TAB？总之不是简单地将TAB放置底端了）。]]></description>
			<content:encoded><![CDATA[<p>　　今天写Tab的时候由于TAB的跳转问题去查资料，倒反而发现更有趣的问题，就是如何将TAB放置在屏幕的底端。效果如<a title="http://www.sisou.cn/read-htm-tid-451.html" href="http://www.sisou.cn/read-htm-tid-451.html">http://www.sisou.cn/read-htm-tid-451.html</a>所示，的确是个好想法，这样貌似也的确漂亮一些，有点类似IPhone里的布局了，呵呵～（其实后来发现这个应该不是用TAB做的，而是ButtonBar做出来的吧，或者是他重写了TAB？总之不是简单地将TAB放置底端了）。</p>
</p>
<p><span id="more-699"></span>
<p>　　要放置底端，那么Android自带的例程是不可以做到的（例程参看development-ApiDemo）。先需要写一个xml的layout文档，命名为bottomtab.xml。</p>
<div class="source" style="color: rgb(0,0,0); font-family: '[object HTMLOptionElement]','Consolas','Lucida Console','Courier New'; background-color: rgb(249,247,237)"><span style="color: rgb(76,131,23)">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span><br /><span style="font-weight: bold; color: rgb(30,144,255)">&lt;LinearLayout</span> <span style="color: rgb(30,144,255)">xmlns:android=</span><span style="color: rgb(170,85,0)">"http://schemas.android.com/apk/res/android"</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:orientation=</span><span style="color: rgb(170,85,0)">"vertical"</span> <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"fill_parent"</span><span style="font-weight: bold; color: rgb(30,144,255)">&gt;</span><br />&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;TabHost</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@+id/edit_item_tab_host"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"fill_parent"</span><span style="font-weight: bold; color: rgb(30,144,255)">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;LinearLayout</span> <span style="color: rgb(30,144,255)">android:orientation=</span><span style="color: rgb(170,85,0)">"vertical"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"fill_parent"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:padding=</span><span style="color: rgb(170,85,0)">"5dp"</span><span style="font-weight: bold; color: rgb(30,144,255)">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;FrameLayout</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@android:id/tabcontent"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:padding=</span><span style="color: rgb(170,85,0)">"5dp"</span> <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"1"</span> <span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;TabWidget</span> <span style="color: rgb(30,144,255)">android:id=</span><span style="color: rgb(170,85,0)">"@android:id/tabs"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_width=</span><span style="color: rgb(170,85,0)">"fill_parent"</span> <span style="color: rgb(30,144,255)">android:layout_height=</span><span style="color: rgb(170,85,0)">"wrap_content"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(30,144,255)">android:layout_weight=</span><span style="color: rgb(170,85,0)">"0"</span> <span style="font-weight: bold; color: rgb(30,144,255)">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;/LinearLayout&gt;</span><br />&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: rgb(30,144,255)">&lt;/TabHost&gt;</span><br /><span style="font-weight: bold; color: rgb(30,144,255)">&lt;/LinearLayout&gt;</span></div>
<p>　　然后以下就是完整的代码了：</p>
<div class="source" style="color: rgb(0,0,0); font-family: '[object HTMLOptionElement]','Consolas','Lucida Console','Courier New'; background-color: rgb(249,247,237)"><span style="color: rgb(0,0,0)">package</span> <span style="color: rgb(0,0,0)">net</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">wangliping</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">test</span>;</p>
<p><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.app.ActivityGroup</span>;<br /><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.content.Intent</span>;<br /><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.os.Bundle</span>;<br /><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.widget.TabHost</span>;<br /><span style="color: rgb(0,0,0)">import</span> <span style="color: rgb(0,170,170); text-decoration: underline">android.widget.TabHost.TabSpec</span>;</p>
<p><span style="color: rgb(0,0,170)">public</span> <span style="color: rgb(0,0,170)">class</span> <span style="color: rgb(0,170,0); text-decoration: underline">TestTab</span> <span style="color: rgb(0,0,170)">extends</span> <span style="color: rgb(0,0,0)">ActivityGroup</span> <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">public</span> <span style="color: rgb(0,0,170)">static</span> <span style="color: rgb(0,0,0)">TabHost</span> <span style="color: rgb(0,0,0)">tab_host</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(136,136,136)">@Override</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">protected</span> <span style="color: rgb(0,170,170)">void</span> <span style="color: rgb(0,170,0)">onCreate</span>(<span style="color: rgb(0,0,0)">Bundle</span> <span style="color: rgb(0,0,0)">savedInstanceState</span>) <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,170)">super</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">onCreate</span>(<span style="color: rgb(0,0,0)">savedInstanceState</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">setContentView</span>(<span style="color: rgb(0,0,0)">R</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">layout</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">bottomtab</span>);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tab_host</span> <span style="color: rgb(0,0,0)">=</span> (<span style="color: rgb(0,0,0)">TabHost</span>) <span style="color: rgb(0,0,0)">findViewById</span>(<span style="color: rgb(0,0,0)">R</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">id</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">edit_item_tab_host</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setup</span>(<span style="color: rgb(0,0,170)">this</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">getLocalActivityManager</span>());</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">TabSpec</span> <span style="color: rgb(0,0,0)">ts1</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">newTabSpec</span>(<span style="color: rgb(170,85,0)">"TAB_WEATHER"</span>); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ts1</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setIndicator</span>(<span style="color: rgb(170,85,0)">"Weather"</span>); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ts1</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setContent</span>(<span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">Intent</span>(<span style="color: rgb(0,0,170)">this</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">Weather</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">class</span>)); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">addTab</span>(<span style="color: rgb(0,0,0)">ts1</span>); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">TabSpec</span> <span style="color: rgb(0,0,0)">ts2</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">newTabSpec</span>(<span style="color: rgb(170,85,0)">"TAB_MAIL"</span>); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ts2</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setIndicator</span>(<span style="color: rgb(170,85,0)">"Mail"</span>); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ts2</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setContent</span>(<span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">Intent</span>(<span style="color: rgb(0,0,170)">this</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">MailSend</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">class</span>)); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">addTab</span>(<span style="color: rgb(0,0,0)">ts2</span>); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">TabSpec</span> <span style="color: rgb(0,0,0)">ts3</span> <span style="color: rgb(0,0,0)">=</span> <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">newTabSpec</span>(<span style="color: rgb(170,85,0)">"TAB_JUMP"</span>); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ts3</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setIndicator</span>(<span style="color: rgb(170,85,0)">"Jump"</span>); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">ts3</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setContent</span>(<span style="color: rgb(0,0,170)">new</span> <span style="color: rgb(0,0,0)">Intent</span>(<span style="color: rgb(0,0,170)">this</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">TabJump</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">class</span>)); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">addTab</span>(<span style="color: rgb(0,0,0)">ts3</span>); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">tab_host</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(30,144,255)">setCurrentTab</span>(<span style="color: rgb(0,153,153)">0</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br /><span style="color: rgb(0,0,0)">}</span></div>
<p>　　而关于页面的跳转，就是：</p>
<blockquote><p>TestTab.tabHost.setCurrentTab(0);</p>
</blockquote>
<p>　　如此这般，就形成了下面的这个东西，其实还没有放在上面好看。。。所以也证实了上面那个应用不是简单地放置TAB在底端了。有机会还是再看看ButtonBar了。</p>
<p><a href="http://wangliping.net/wp-content/uploads/2010/05/device.png"><img title="device" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="484" alt="device" src="http://wangliping.net/wp-content/uploads/2010/05/device_thumb.png" width="324" border="0"></a> </p>
<p>以上资料参考：</p>
<p><a title="http://www.anddev.org/viewtopic.php?p=21932" href="http://www.anddev.org/viewtopic.php?p=21932">http://www.anddev.org/viewtopic.php?p=21932</a></p>
<p><a title="http://stackoverflow.com/questions/2395661/android-tabs-at-the-bottom" href="http://stackoverflow.com/questions/2395661/android-tabs-at-the-bottom">http://stackoverflow.com/questions/2395661/android-tabs-at-the-bottom</a></p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-buttonbar-bottom" title="Android将ButtonBar放在屏幕底部">Android将ButtonBar放在屏幕底部</a></li><li><a href="http://wangliping.net/android-add-shortcut" title="Android添加桌面快捷图标">Android添加桌面快捷图标</a></li><li><a href="http://wangliping.net/android-ksoap2-weather" title="Android利用ksoap2写天气预报应用">Android利用ksoap2写天气预报应用</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/git-clone-spec-branch" title="git-clone指定branch">git-clone指定branch</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-tab-bottom/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Android-x86 1.6-r2 釋出</title>
		<link>http://wangliping.net/android-x86-donut-r2</link>
		<comments>http://wangliping.net/android-x86-donut-r2#comments</comments>
		<pubDate>Thu, 25 Mar 2010 00:54:29 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[busybox]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-x86-donut-r2</guid>
		<description><![CDATA[你还在为Android兴奋却拿不到Nexus one手机吗？不用着急，这里有你需要的，android-x86在PC上跑出越来越多的功能，或许某些地方比Nexus one还强大呢，而且也越来越稳定。还等什么，来看看阿偉的個人天地关于Android-x86 1.6-r2 釋出。]]></description>
			<content:encoded><![CDATA[<p>　　你还在为Android兴奋却拿不到Nexus one手机吗？不用着急，这里有你需要的，android-x86在PC上跑出越来越多的功能，或许某些地方比Nexus one还强大呢，而且也越来越稳定。还等什么，来看看<a href="http://cwhuang.info/">阿偉的個人天地</a>关于<a href="http://cwhuang.info/2010/03/android-x86-1-6-r2-release">Android-x86 1.6-r2 釋出</a>。</p>
<p><span id="more-649"></span><br />
<blockquote>
<p>最近在 donut-x86 branch 新增不少功能或修正，因此釋出了 1.6 release 2。主要的特色包括 </p>
<ul>
<li>錄影功能可正常使用了。
<li>3G USB 網卡的支援。
<li>加入 mksh 取代原本的 Android shell。
<li>加入 busybox。
<li>從 eclair-x86 移植過來的觸控螢幕校正功能。
<li>更新一些 apps，例如 LIME、ConnectBot。
<li>其餘的小修正，例如移除開機時的警告訊息，還有 console 可以 ctrl-C 了。 </li>
</ul>
<p>細節以及下載地點，請參考 <a href="http://www.android-x86.org/releases/releasenote_1_6_r2">release note</a>。</p>
</blockquote>
<p>　　如果这个信息能在cnBeta上发出，或许可以受到更多人的追捧呢，呵呵～</p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-donut-r2/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Android-x86-2.0-eclair出pub-test版了</title>
		<link>http://wangliping.net/android-x86-20-eclair-release</link>
		<comments>http://wangliping.net/android-x86-20-eclair-release#comments</comments>
		<pubDate>Sat, 16 Jan 2010 16:04:37 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[cwhuang]]></category>
		<category><![CDATA[eclair]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-x86-20-eclair-release</guid>
		<description><![CDATA[Android-2.0对于Android-1.6来说是一个跨越，Android-x86-2.0对于android-x86-1.6也是一个跨越，首先，Android之身的特性 ，对于Android-x86来说几乎都继承了，然后添加了一些针对x86平台的一些特有的特性。譬如说x86支持以太网，支持大屏幕，支持多种x86平台等等。]]></description>
			<content:encoded><![CDATA[<p>　　Android-2.0对于Android-1.6来说是一个跨越，Android-x86-2.0对于android-x86-1.6也是一个跨越，首先，Android之身的特性 ，对于Android-x86来说几乎都继承了，然后添加了一些针对x86平台的一些特有的特性。譬如说x86支持以太网，支持大屏幕，支持多种x86平台等等。</p>
</p>
<p><span id="more-606"></span>
<p>　　2.0的释出，是多个工作者努力的结果，感谢开源。说起开源，就说起google对于Android的开放程度还是存在些许问题。譬如<a href="http://cwhuang.info" target="_blank">cwhuang</a>提到2.0没有history信息，即git log找不到任何修改信息。其实个人还认为部分代码不全才是最重要的问题，细细检查可以发现部分代码缺失。废话不多说，想了解android-x86更详细内容，敬请登陆<a href="http://www.android-x86.org">http://www.android-x86.org</a>去细细研究，要讨论则去<a title="https://groups.google.com/group/android-x86/" href="https://groups.google.com/group/android-x86/">https://groups.google.com/group/android-x86/</a>。当然本来地址是http协议的，不过由于国内不能访问groups，于是用https协议多数时候倒是可以访问的。下载地址：<a href="http://code.google.com/p/android-x86/downloads/list">http://code.google.com/p/android-x86/downloads/list</a></p>
</p>
<p>　　下面摘录部分关于Andorid-x86-2.0的有关信息。原文地址：<a href="http://www.android-x86.org/releases/build-20100115">http://www.android-x86.org/releases/build-20100115</a> 转载请注明原文地址。</p>
<blockquote><p>Build 20100115<br />Test build for Android-x86 2.0 on EeePC platforms<br />The Android-x86 project is glad to announce a new test build<br />20100115 for public testing. A live CD ISO and USB image are<br />available from our site:<br />http://www.android-x86.org/download<br />http://code.google.com/p/android-x86/downloads/list<br />Features:<br />Build 20100115 is Android 2.0 (Eclair) based and it is a release candidate for android-x86 2.0 stable release.<br />In addition to the features available in 1.6 release, the new build contains<br />* Auto detection for touch screen calibration.<br />* Enabled Keyguard window.<br />* Improved sleep and wakeup handling.<br />* Eclair NDK for X86 platforms<br />* Added backlight support for EeePC platforms.<br />* New framework to support different x86 platforms from different vendors.<br />* Kernel 2.6.32 support (not included in the prebuilt images)<br />Released Files:<br />* Live CD iso: android-x86-eeepc-2.0.iso<br />SHA1 Checksum: 0de5f73720e4280aa192d4eb43af63656234d430<br />* Live USB image: android-x86-eeepc-2.0_usb.img.gz<br />SHA1 Checksum: 50c2288690dc6060f0878c5c479b8ed461081e9a<br />Source code:<br />The source code is available in our git server, see http://www.android-x86.org/getsourcecode for the instructions about how to get the source code.<br />Test reports (success or fail) are welcome.<br />Please send the reports to the Android-x86 discussion group.<br />http://groups.google.com/group/android-x86<br />Known issues:<br />1. the libghl is not merged yet.<br />2. the graphic performance is very bad<br />3. the Camcorder does not work.<br />4. WIFI does not work for certain devices<br />5. low sound volume</p>
</blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-20-eclair-release/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclair已经在VirtualBox上跑起来了</title>
		<link>http://wangliping.net/eclair-virtuebox-boot</link>
		<comments>http://wangliping.net/eclair-virtuebox-boot#comments</comments>
		<pubDate>Thu, 03 Dec 2009 01:07:05 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[eclair]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=522</guid>
		<description><![CDATA[　　这里指的当然是Android-x86了。今天上Android-x86主站一看，就发现了这个事情，不错啊不错。经过他们艰苦卓绝的努力，终于将这个初步完成。鼓掌。Eclair是Google对Android2.0的称呼吧，由于以前Android-x86都是用的1.0，1.5，1.6版本，现在转到2.0版本，改动非常大，且不说界面上的影响，从部分源码上的改动已经对x86伤筋动骨了吧。所以说Google一动手，别人就要做好多事情。那个Acer现在不是已经出了一部安装Android的上网本吗？不过那个用的是1.0版本，而早在它发布之前，Android-86已经用了1.5版本，所以说，Android-x86项目算是紧跟技术前沿，呵呵～]]></description>
			<content:encoded><![CDATA[<p>　　这里指的当然是Android-x86了。今天上Android-x86主站一看，就发现了这个事情，不错啊不错。经过他们艰苦卓绝的努力，终于将这个初步完成。鼓掌。Eclair是Google对Android2.0的称呼吧，由于以前Android-x86都是用的1.0，1.5，1.6版本，现在转到2.0版本，改动非常大，且不说界面上的影响，从部分源码上的改动已经对x86伤筋动骨了吧。所以说Google一动手，别人就要做好多事情。那个Acer现在不是已经出了一部安装Android的上网本吗？不过那个用的是1.0版本，而早在它发布之前，Android-86已经用了1.5版本，所以说，Android-x86项目算是紧跟技术前沿，呵呵～</p>
<p>　　为了让大家更好地知道具体过程，现将原文引用如下，图片我下载后重新上传了，以便大家访问，原文地址：<a href="http://blog.android-x86.org/2009/12/eclair-is-up-running-on-virtualbox.html">http://blog.android-x86.org/2009/12/eclair-is-up-running-on-virtualbox.html</a>：<span id="more-522"></span></p>
<blockquote>
<h3><a href="http://blog.android-x86.org/2009/12/eclair-is-up-running-on-virtualbox.html" target="_blank">Eclair is up running on VirtualBox</a></h3>
<div>After the thanksgiving holiday, we had worked on the Eclair merge for 24 hours a day on everyday (well, I'm in US, Chih-wei is in Taiwan, so both of us worked together for 24 hours a day). After fixed audioflinger, camera code, removed opengl, fixed linker and merge conflicts and ...... when I open my e-mail box this morning, I saw Chih-wei's e-mail named "First Screenshots of Eclair on vbox", so I can not just stop myself to write this blog even longer to let people know this news. We will clean up the things and push the changes to master tree. Surely, we have a lot of fixup works need to be done, but, hi, it boots. It is a good start <img src='http://wangliping.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<div><a href="http://pimg.swodestatic.com/NjA2OTM0Nixzd2FuZGxl.jpg"><img class="alignnone" title="Eclair-boot" src="http://pimg.swodestatic.com/NjA2OTM0Nixzd2FuZGxl.jpg" alt="" width="480" height="389" /></a><a href="http://pimg.swodestatic.com/NjA2OTM0Nyxzd2FuZGxl.jpg"><img class="alignnone" title="Eclair-Settings" src="http://pimg.swodestatic.com/NjA2OTM0Nyxzd2FuZGxl.jpg" alt="" width="480" height="389" /></a></div>
</blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/eclair-virtuebox-boot/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Android-x86录像功能完善——兼谈开源</title>
		<link>http://wangliping.net/android-x86-camrecord-and-opensource</link>
		<comments>http://wangliping.net/android-x86-camrecord-and-opensource#comments</comments>
		<pubDate>Wed, 02 Dec 2009 11:41:47 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[0xAndroid]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[录像]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=519</guid>
		<description><![CDATA[　　Android-x86是什么东西，就不要我再过多介绍吧？如果你看了本博客还不了解Android-x86，就要打五十大板了，呵呵～多看看我前面的文章，会对你理解Android-x86有所帮助的。

　　一直以来，录像功能对于Android-x86都不完善。其实，连完善都谈不上，因为根本就没办法启动录像功能，仅仅有个界面而已。不知道Google 没将真正的录像功能加入它的主branch，还是根本就没写，查看一下源码，发现缺很多东西，而且看文件头，还是HTC写的。或许真的是没放到 master branch吧。既然这样，我们就只能自己动手改了。

　　0xAndroid也是个好东西，不过个人还是觉得 Android-x86比较好，用起来方便。哈哈～到处搜相关内容，没想到搜到了0xAndroid项目好像提到了这个问题。于是就看看它的代码，貌似还真的是处理了录像功能，于是借过来编译试试，果然涉及到这个问题，虽然并不完善，不过至少让录像功能跑起来了。

　　当然，0xAndroid的毛病也不少，不知道是我们下载的branch有问题，还是的确本来就存在这些问题：譬如照相过后就一块黑，录像不能预览，录像出来的文件基本是灰色的，录像完后会卡死机，照相的分辨率跟录像都是352×288，这显然不能容忍，即使将就录出来，也是没有声音的，看Log信息还报很多错误。于是借鉴代码，却要好好改改这些代码。]]></description>
			<content:encoded><![CDATA[<p>Android-x86是什么东西，就不要我再过多介绍吧？如果你看了本博客还不了解Android-x86，就要打五十大板了，呵呵～多看看我前面的文章，会对你理解Android-x86有所帮助的。</p>
<p>一直以来，录像功能对于Android-x86都不完善。其实，连完善都谈不上，因为根本就没办法启动录像功能，仅仅有个界面而已。不知道Google没将真正的录像功能加入它的主branch，还是根本就没写，查看一下源码，发现缺很多东西，而且看文件头，还是HTC写的。或许真的是没放到master branch吧。既然这样，我们就只能自己动手改了。</p>
<p>0xAndroid也是个好东西，不过个人还是觉得Android-x86比较好，用起来方便。哈哈～到处搜相关内容，没想到搜到了0xAndroid项目好像提到了这个问题。于是就看看它的代码，貌似还真的是处理了录像功能，于是借过来编译试试，果然涉及到这个问题，虽然并不完善，不过至少让录像功能跑起来了。</p>
<p><span id="more-519"></span> 当然，0xAndroid的毛病也不少，不知道是我们下载的branch有问题，还是的确本来就存在这些问题：譬如照相过后就一块黑，录像不能预览，录像出来的文件基本是灰色的，录像完后会卡死机，照相的分辨率跟录像都是352×288，这显然不能容忍，即使将就录出来，也是没有声音的，看Log信息还报很多错误。于是借鉴代码，却要好好改改这些代码。 经过这两天的努力，上述问题基本得到解决，一切基本正常，现在的主要问题就是照相分辨率可以达到640×480，但是没法往上提高，怎么设置，都无效。这个还在查看中，难道是Android某个代码中限制了分辨率超过640×480？没有相关log信息，那么就只能继续查看了。不过至少不再是352×288了。而其它问题也已得到解决，基本稳定了，更多的测试当然就不太清楚了。</p>
<p>说到这里，就要谈到开源了。0xAndroid和Android-x86都是开源项目，当然Android也是开源项目了。它们都引起很多很多人的兴趣，并且还参与进去，使得项目开展得越来越好，这就是开源的魅力所在吧，所有人都可以参与进去，为之贡献自己的力量。将自己的智慧与大家分享。这就叫众人拾柴火焰高吧。国内也有好多项目是开源的，貌似政府也在牵头开源项目（忘记那个网址了）。</p>
<p>虽然开源就是开放源代码，不过个人认为仅仅开放源代码并不代表着真正地开源。国内也好多程序开放源代码，但是往往依然只在那几个人中开发，别人根本没法融入进去，参与开发（或许也跟国内的开发环境有关）。而且国内的开放源代码的程序貌似基本都会加上一条：“不得以任何形式的商业行为”。这样的规定就完全限制了开源的精神，限制了它的发展。好多开源项目都有公司的参与，如果不能有商业行为，这兴趣就减弱了。Linux最初吧不也是规定不可以有任何商业行为吗？后来发现这样太限制它的发展了，于是加入到GNU协议，使得Linux有了持久的突飞猛进的发展。想想Ubuntu/RedHat还不都是基于Linux的，不也是可以从事商业活动吗？所以国内很多项目一加上这个条件，明显就是限制发展了，于是永远就那么几个人在坚持开发，不像Linux那样全球参与。</p>
<p>顺便提一下，本博客采用的WordPress也是一个开源项目，全球参与开发，现在不是发展得很好很好吗？开放源代码很好，更重要的是能够吸引别人参与开发，这才是开源的目的和意义，仅仅公开代码是不够的。</p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-camrecord-and-opensource/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Android-x86项目开始接受捐款</title>
		<link>http://wangliping.net/android-x86-begin-to-accept-donate</link>
		<comments>http://wangliping.net/android-x86-begin-to-accept-donate#comments</comments>
		<pubDate>Tue, 24 Nov 2009 00:50:03 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[donate]]></category>
		<category><![CDATA[捐款]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=505</guid>
		<description><![CDATA[　　为了更好地支持这个项目的发展，Android-x86已经开始接受捐款。如果您觉得这个项目不错，如果您想这个项目继续发展下去，请您能支持这个项目，对这个项目进行捐款。如果您对这个项目有什么疑义，可以前往项目主站查看详情，或者前往讨论区询问。以下是引用cwhuang的博客文章。]]></description>
			<content:encoded><![CDATA[<p>　　为了更好地支持这个项目的发展，Android-x86已经开始接受捐款。如果您觉得这个项目不错，如果您想这个项目继续发展下去，请您能支持这个项目，对这个项目进行捐款。如果您对这个项目有什么疑义，可以前往<a title="Android-x86项目主站" href="http://www.android-x86.org" target="_blank">项目主站</a>查看详情，或者前往<a title="Android-x86项目讨论区" href="http://groups.google.com/group/android-x86" target="_blank">讨论区</a>询问。以下是引用<a title="阿偉的個人天地" href="http://cwhuang.info/2009/11/android-x86-accept-donation" target="_blank">cwhuang</a>的博客文章。<span id="more-505"></span></p>
<blockquote><p>隨著 Android-x86 1.6 版的釋出，為了給各位辛苦的開發者一些鼓勵，讓這個計劃能更長久穩健的走下去，我們決定開始接受捐款。在<a href="http://www.android-x86.org/">主網站首頁</a>，已經放了 Donate icon，點選下去，便會連到 Paypal 的捐款頁面。</p>
<p>如果真的收到捐款，能做什麼呢? 首先，當然是支付一些經常性的開銷。還好目前這樣的費用還不多，只有花費在註冊 android-x86.org 這個 domain 上，是由 Yi 先行墊付。如果收到的錢夠多，也許可以買點不同的設備來測試。特別像我就想買支 Android 的手機，畢竟玩 Android 系統已經有一段時間了，卻還沒有用過真正的 Android 手機，不免有點可惜。跟朋友借來玩個幾分鐘的不算…</p>
<p>如果你覺得我們的計劃做得不錯，希望我們更進一步，請考慮捐款給我們。或者，如果希望 Android-x86 能更完整的支援你的裝置，也請考慮捐贈該裝置給我們。請點選下面的圖示：</p>
<p align="center"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=cwhuang%40linux%2eorg%2etw&amp;lc=US&amp;item_name=Android%2dx86%2eorg&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" alt="Donate to Android-x86.org" /></a></p>
</blockquote>
<p style="text-align: left;">　　以下是引用<a title="Android-x86项目主站" href="http://www.android-x86.org" target="_blank">Android-x86项目主站</a>上的文字：</p>
<blockquote>
<p style="text-align: left;"><strong>We began to accept donations via Paypal. Please click the right <a rel="nofollow" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=cwhuang%40linux%2eorg%2etw&amp;lc=US&amp;item_name=Android%2dx86%2eorg&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted">Donate icon</a>. If you think we have done a good job and hope we continue the work, please consider to donate us some money, so we can pay the expenditure and buy devices for testing. Besides, if you hope we support your device, please consider to donate some devices to us. Thank you for your supporting. </strong></p>
</blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-begin-to-accept-donate/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android-x86出1.6版了</title>
		<link>http://wangliping.net/android-x86-1-6-stable</link>
		<comments>http://wangliping.net/android-x86-1-6-stable#comments</comments>
		<pubDate>Sun, 22 Nov 2009 15:02:20 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=497</guid>
		<description><![CDATA[　　Android-x86出1.6版了，虽然Chrome OS的发布吸引了众多的眼球，但是Android-x86也是不错的系统。Chrome OS据说非常依赖于网络，并且还不怎么支持硬盘，也即是说没有本地文件，但是Android-x86则不同，所以，也是值得期待的，而且现在也开源。对 Android-x86还不是很了解的，可以看华人软件工程师移植Android系统入驻上网本，或者直接去Android-x86站点看。废话不多说，直接转载这篇文章（应该可以转载吧）。

　　原文来自于：http://www.android-x86.org/releases/releasenote_1_6
　　转载请注明。]]></description>
			<content:encoded><![CDATA[<p>Android-x86出1.6版了，虽然Chrome OS的发布吸引了众多的眼球，但是Android-x86也是不错的系统。Chrome OS据说非常依赖于网络，并且还不怎么支持硬盘，也即是说没有本地文件，但是Android-x86则不同，所以，也是值得期待的，而且现在也开源。对Android-x86还不是很了解的，可以看<a rel="bookmark" href="../android-x86-2">华人软件工程师移植Android系统入驻上网本</a>，或者直接去<a title="Android-x86站点" href="http://www.android-x86.org" target="_blank">Android-x86</a>站点看。废话不多说，直接转载这篇文章（应该可以转载吧）。</p>
<p>原文来自于：<a title="Android-x86 1.6" href="http://www.android-x86.org/releases/releasenote_1_6" target="_blank">http://www.android-x86.org/releases/releasenote_1_6</a></p>
<p><span style="font-size: small;"> </span></p>
<p>转载请注明。<span id="more-497"></span></p>
<blockquote><p>The Android-x86 project is glad to release the new stable version 1.6 to the public. The live cd iso and usb image are available from our site, as usual:</p>
<ul>
<li><a href="http://www.android-x86.org/download">http://www.android-x86.org/download</a></li>
<li><a href="http://code.google.com/p/android-x86/downloads/list">http://code.google.com/p/android-x86/downloads/list</a></li>
</ul>
<p>Test reports (success or fail) are welcome as always. Please send the reports to the <a href="http://groups.google.com/group/android-x86">Android-x86 discussion group</a>. If you are working on Android for x86 platform, welcome to join us. See the below contact information.</p>
<h3>Key Features</h3>
<ul>
<li>Kernel 2.6.29 with KMS enabled. Most netbooks can run Android-x86 in the native resolution.</li>
<li>Hardware OpenGL support on i915/i945 family chipsets. This feature improves greatly the performance of 3D effect and video playback. It is turned on by default if the i915 driver is available. However, if you have trouble with it, you can disable it by adding HWACCEL=0 to the cmdline. (by olv from 0xlab)</li>
<li>Wifi and Ethernet support. Both are configured from the GUI.</li>
<li>A new text based GUI installer which supports ext3/ext2/ntfs/fat32 filesystems.</li>
<li>Support basic bluetooth for builtin device and external bluetooth dongle.</li>
<li>Keyboard layout is configurable. Ten layouts are supported in this release. To use this feature, you have to install Android-x86 to harddisk and reboot after changing the setting.</li>
<li>Fn hotkeys support for Eee PC platforms.</li>
<li>Add touch features to simulate Home/Menu/Back keys, useful for touchscreen only devices.</li>
<li>Add software mouse cursor. Mouse wheel is also supported.</li>
</ul>
<ul>
<li>Better keyboard support, including PageUp, PageDown, and so on. The Ctrl key is usable in the Terminal emulator.</li>
<li>Touchscreen support for Eee PC T91 and Eee Top.</li>
<li>External usb drive and sdcard are auto mounted on plugging.</li>
<li>Add shutdown and reboot dialog. To invoke it, press the power button.</li>
<li>A hotplug tool to load driver firmwares.</li>
<li>Audio and Camera support.</li>
<li>Drivers auto detection.</li>
<li>Battery status.</li>
<li>Suspend to RAM and wakeup.</li>
<li>Adjustable Alarm Clock volume.</li>
<li>Add proxy setting.</li>
<li>Be able to su in the Terminal emulator.</li>
<li>Software keyboard is workable.</li>
<li>Support larger resolutions.</li>
<li>Chinese Pinyin IME works correctly.</li>
<li>Add video player.</li>
<li>Add more sample applications.</li>
<li>Add third party applications, include
<ul>
<li>OpenIntents File Manager.</li>
<li>ConnectBot ssh client.</li>
<li>AndAppStore client 1.5.8.</li>
<li>LIME IME 1.6.3.</li>
<li>RockOn 1.4.8 For Android.</li>
</ul>
</li>
<li>Compressed filesystem (squashfs).</li>
<li>Debug mode including busybox.</li>
</ul>
<li>NDK for x86 platforms is supported.</li>
<p>Android-x86 1.6 is based on the Android 1.6, aka the Donut branch. We fixed and added many x86 specified code to let the system runs smoothly on x86 platforms, especially for netbooks. The key features of this release contain  In addition to the key features, here is the list of all other improvements</p></blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/chrome-os-smile-finally-and-any-answer" title="Chrome OS 终于露出真容，我们有了答案了吗？">Chrome OS 终于露出真容，我们有了答案了吗？</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-1-6-stable/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
