新浪微博開放平台開發-android用戶端(3)

來源:互聯網
上載者:User

 

引言

最近不是太忙,花了一些時間學習android的應用開發。經過兩個星期的學習,學習的同時還寫了很多的demo樣本,可以從基本控制項及基本動畫效果等樣本demo集合大放送,持續更新下載。

從這個星期開始,準備拿新浪微博開放平台做個實踐,開發一個功能簡單的android用戶端,會儘可能的完善功能。

今天的內容

 

是這個用戶端的主要介面。今天增加的功能。

 

簡單的樣式和皮膚,只是添加了按鈕。

啟動並執行系統是android2.2.

使用到的技術點包括ListView,自訂ListAdapter,多線程相關的Message,Handler,驗證相關的OAuth,使用者圖片的非同步載入。

 

新浪微博的驗證使用的是signpost的OAuth組件,沒有使用微博的SDK。

 

 

源碼下載:

 

SinaWeibo2

 

源碼下載之後,將尾碼改為rar,使用壓縮軟體解壓即可。

Style and Themey樣式和皮膚

通過樣式和皮膚可以美化我們的UI,經過美化的UI會更加吸引使用者,至少讓我們的應用看起來不至於很醜陋(當然了,也需要合理的樣式和皮膚,否則可能會更醜陋)。

 

樣式和皮膚有下面幾種使用情境:

 

1 給一個控制項添加獨立的樣式

 

    定義一個樣式view sourceprint?1 <style name="Text"> 

 

2         <item name="android:textSize">20sp</item> 

 

3         <item name="android:textColor">#00dd9a</item> 

 

4     </style>

 

    然後在布局檔案的控制項中使用設定樣式view sourceprint?1 <TextView android:text="新浪微博V2" style="@style/Text"

 

2         android:layout_width="wrap_content" android:layout_height="wrap_content" />

 

2 給幾個控制項添加同種樣式

 

    定義一個樣式view sourceprint?1 <style name="Text"> 

 

2         <item name="android:textSize">20sp</item> 

 

3         <item name="android:textColor">#00dd9a</item> 

 

4     </style>

 

    在幾個控制項中都是用設定樣式view sourceprint?1 <TextView android:text="新浪微博V2" style="@style/Text"

 

2         android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

 

3     <TextView android:text="歡迎使用" style="@style/Text"

 

4         android:layout_width="wrap_content" android:layout_height="wrap_content" />

 

3 修改相同種類的控制項的樣式,例如所有的button的樣式,想實現這個效果,有兩個方法。

 

方法1:定義一個樣式,然後在每個button中使用style屬性應用這個樣式。view sourceprint?01 <style name="Button" parent="@android:style/Widget.Button"> 

 

02         <item name="android:gravity">center_vertical|center_horizontal</item>  

 

03         <item name="android:textColor">#FFFFFFFF</item> 

 

04         <item name="android:shadowColor">#FF000000</item> 

 

05         <item name="android:shadowDx">0</item> 

 

06         <item name="android:shadowDy">-1</item> 

 

07         <item name="android:shadowRadius">0.2</item> 

 

08         <item name="android:textSize">16dip</item> 

 

09         <item name="android:textStyle">bold</item> 

 

10         <item name="android:background">@drawable/com_sinaweibo2_list_button_selector</item> 

 

11   

 

12   

 

13   

 

14     </style>

view sourceprint?1 <Button android:text="Add" android:id="@+id/com_sinaweibo2_list_btnAdd"

 

2         style="@style/Button"

 

3             android:layout_toRightOf="@id/com_sinaweibo2_list_btnRefresh"

 

4             android:layout_height="wrap_content" android:layout_width="wrap_content" />

 

方法2:定義為皮膚,然後再manifest檔案中應用在application,或者是activity上。view sourceprint?01 <style name="Button" parent="@android:style/Widget.Button"> 

 

02         <item name="android:gravity">center_vertical|center_horizontal</item> 

 

03         <item name="android:textColor">#FFFFFFFF</item> 

 

04         <item name="android:shadowColor">#FF000000</item> 

 

05         <item name="android:shadowDx">0</item> 

 

06         <item name="android:shadowDy">-1</item> 

 

07         <item name="android:shadowRadius">0.2</item> 

 

08         <item name="android:textSize">16dip</item> 

 

09         <item name="android:textStyle">bold</item> 

 

10         <item name="android:background">@drawable/com_sinaweibo2_list_button_selector</item> 

 

11   

 

12   

 

13   

 

14     </style> 

 

15     <style name="CustomButton" parent="@android:style/Theme.NoTitleBar"> 

 

16         <item name="android:buttonStyle">@style/Button</item> 

 

17     </style>

view sourceprint?1 <application android:icon="@drawable/icon" android:label="@string/app_name"

 

2     android:theme="@style/CustomButton">

 

顯然使用第二種的好處是修改樣式,甚至是樣式的名字,只需要修改style的定義就可以了,不用在使用style的地方修改任何地方。第二種方法中樣式的應用範圍是一個activity或者是整個application,如果想做某幾個button的控制就只能用第一種方法了。

 

需要注意的地方

 

如果只是給文字用的話,直接定義一個一個樣式就可以了。

 

如果是給控制項用的話,就需要繼承一個基類的樣式,然後進行自己的修改,要不然控制項會只剩下你定義的樣式,其他的都沒有了,甚至一個button都可能不能點擊了,就是因為樣式定義的不完整。為了確保定義完整,你需要繼承系統的控制項樣式,然後進行自己的修改。

 

<item name="android:buttonStyle">@style/Button</item> 中的buttonStyle代表這個樣式或者皮膚應用在所有的button上面。每一種控制項都有這幾的style,例如listViewStyle、textViewStyle等等。可以在系統內建的皮膚中尋找。另外樣式和皮膚的使用和系統內建的樣式也是不錯的學習資源。

更多功能

接下來可能會支援的功能:

 

操作功能表,刪除,添加關注,取消追蹤,查看某個使用者的微博等等。

發表博文支援圖片。

UI的美化,效能的最佳化。

總結

學習的過程中看過兩本書,Pro.Android.2.pdf和Professional.Android.2.Application.Development.(Wrox,.2010,.0470565527).pdf,都是很不錯的入門書籍。書我沒有全看完,看完大部分吧,邊看邊寫demo。

 

同時每天泡論壇http://www.eoeandroid.com/forum.php,eoe的開發人員門戶。回答問題,解決問題,提出問題,發文章,總之就是鍛煉自己,強迫自己鍛煉基礎和思考。

 

在論壇上,有很多的中文pdf教程,但是發現大多都是翻譯android developer center的Dev Guide和Resources中的內容。所以覺得,如果英文不是很差,建議直接閱讀上面的兩個板塊,同時練習其中的樣本,保證兩個星期,你會有很大的進步。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.