<?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/tag/android/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>git-clone指定branch</title>
		<link>http://wangliping.net/git-clone-spec-branch</link>
		<comments>http://wangliping.net/git-clone-spec-branch#comments</comments>
		<pubDate>Thu, 04 Feb 2010 06:11:38 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[编程技术]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://wangliping.net/git-clone-spec-branch</guid>
		<description><![CDATA[有时git clone下来会出现很多branch，更麻烦的是如果主分支没代码那你就只能看到.git目录了。如下面的这个:

$ git clone git://gitorious.org/android-eeepc/mesa.git]]></description>
			<content:encoded><![CDATA[<p>（仅作备忘笔记）</p>
<p>　　有时git clone下来会出现很多branch，更麻烦的是如果主分支没代码那你就只能看到.git目录了。如下面的这个:</p>
<blockquote><p><code>$ git clone <a href="git://gitorious.org/android-eeepc/mesa.git">git://gitorious.org/android-eeepc/mesa.git</a></code></p>
</blockquote>
<p><span id="more-645"></span>
<p>　　发现本地就只有一个.git目录，那么这个时候就需要checkout了。</p>
<p>　　进入你的本地目录，如这个是mesa，利用</p>
<blockquote><p>$ git branch –r</p>
</blockquote>
<p>　　查看branch信息（当然你也可以用git show-branch查看，不过有时并不好用），获得如下branch信息：</p>
<blockquote><p>origin/android<br />origin/mesa-es<br />origin/mesa-es-dri </p>
</blockquote>
<p>　　此时我们需要的是android分支的代码，那么此时就要进行checkout了。<br />
<blockquote>
<p>$ git checkout origin/android</p>
</blockquote>
<p>　　你再看你的目录（mesa）下是不是有了代码了？其它的branch同理。</p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/git" title="Linux下git简单使用教程（以Android为例）">Linux下git简单使用教程（以Android为例）</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-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></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/git-clone-spec-branch/feed</wfw:commentRss>
		<slash:comments>2</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>Source-Insight-看大规模大工程源代码</title>
		<link>http://wangliping.net/source-insight-see-source-code</link>
		<comments>http://wangliping.net/source-insight-see-source-code#comments</comments>
		<pubDate>Thu, 07 Jan 2010 08:49:20 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[编程技术]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[Source-Insight]]></category>

		<guid isPermaLink="false">http://wangliping.net/source-insight-see-source-code</guid>
		<description><![CDATA[如果你只是看或者编写一个小应用，这个东西当然还没有UltraEdit好，但是你要管理成百上千，成千上万的代码，那你最好还是考虑一下这个吧，UltraEdit此时只能是束手无策或者是黔驴技穷了。你估计想说，有那么多文件需要管理吗？其实，最简单最广泛的，Linux的Kernel就是一个典型的例子。解压后的代码都有几百M，你说你怎么看？说实话最初我不知道这软件的时候，是一个目录一个目录，一个文件一个文件看的。]]></description>
			<content:encoded><![CDATA[<p>　　如果你只是看或者编写一个小应用，这个东西当然还没有UltraEdit好，但是你要管理成百上千，成千上万的代码，那你最好还是考虑一下这个吧，UltraEdit此时只能是束手无策或者是黔驴技穷了。你估计想说，有那么多文件需要管理吗？其实，最简单最广泛的，Linux的Kernel就是一个典型的例子。解压后的代码都有几百M，你说你怎么看？说实话最初我不知道这软件的时候，是一个目录一个目录，一个文件一个文件看的。</p>
<p><span id="more-599"></span>　　然而你要知道，翻目录翻文件，你的确需要毅力。还有就是想找一个文件，你又得用find，找一个函数你还得有search，更或者要用grep，如此这般。然后你想知道一个函数被谁调用，你却无从下手，然后你想知道一个变量怎么改变的，你依然要费大力气。那么，就从这些劳动中解脱出来吧，用上Source Insight或许就可以减轻你这样的负担了。</p>
<p>　　原来看Android的源码树时，用的是Eclipse，当时觉得挺好用的。但是后来发现Eclair居然不能导入到Eclipse。得，本来也觉得Eclipse不能很好地看C代码很不爽，那么就用SourceInsight吧。全部导入并sync后，发现貌似SourceInsight看源码树比Eclipse还好一些，特别是最近几乎看的都是C和C++部分的代码，其实对于Java代码也一样好。可以在代码间跳转，可以很快地定位需要的文件，虽然不能完全所有想定位的都能定位，但已经足以比Eclipse好一些了。</p>
<p>　　建议看源代码时，要将代码sync一下，这样就可以跳转了。虽然这样要花费较多的时间去sync，花费较多的磁盘空间，不过，磁盘嘛，1G总是相对比较少的，时间嘛，花一次这样的时间，以后都方便还是很好的。而且这个软件还是免费的，最初看到这个软件的推荐是在IBM的开发网站上，呵～IBM推荐的，也可以让大家信任吧。截图看一下：</p>
<p><a href="http://pimg.swodestatic.com/NjQxMTc3Nixzd2FuZGxl.jpg" target="_blank"><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="Source-Insight" src="http://pimg.swodestatic.com/NjQxMTc3Nixzd2FuZGxl_medium.jpg" border="0" alt="Source-Insight" width="484" height="295" /></a></p>
<p align="center"><strong>原创文章，如需转载请注明【</strong><a href="http://wangliping.net" target="_blank"><strong>转烛空间</strong></a><strong>】：</strong><a href="http://wangliping.net"><strong>http://wangliping.net</strong></a></p>
<p align="center"><strong>本文地址：</strong><a href="http://wangliping.net/source-insight-see-source-code"><strong>http://wangliping.net/source-insight-see-source-code</strong></a></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/linux-android-x86-test-keyboard-mouse-touch-screen" title="Linux下测试键盘鼠标触摸屏触摸板">Linux下测试键盘鼠标触摸屏触摸板</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></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/source-insight-see-source-code/feed</wfw:commentRss>
		<slash:comments>7</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>
	</channel>
</rss>
