新浪微博開放平臺開發-android客戶端(3) – Android移動開發技術文章_手機開發 Android移動開發教學課程

 

引言

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

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

今天的內容

sinaweibo4

 

上圖是這個客戶端的主要界面。今天增加的功能。

 

簡單的樣式和皮膚,隻是添加瞭按鈕。

運行的系統是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中的內容。所以覺得,如果英文不是很差,建議直接閱讀上面的兩個板塊,同時練習其中的示例,保證兩個星期,你會有很大的進步。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *