github上的開源庫其實仍是很不錯的,以前的時候總感受學一些開源庫比較麻煩,裏邊有好多方法什麼的,今天終於邁出了第一步,中間也遇到了一些問題,如今總結下,也給其餘剛開始學習開源庫的小夥伴一些指導:html
satellite-menu開源庫的地址:https://github.com/siyamed/android-satellite-menuandroid
先把這個開源庫下載下來,解壓,看到以下兩個項目和一個README文件。git
接下來把這兩個項目導入Eclipse(我這裏用的是Eclipse開發)github
導入後一切正常,沒有錯誤(若是有錯誤的話clean下就ok了),運行Package Explorer中的satellite-menu-sample,很快就能夠在android設備上看到效果了,效果以下:app
效果仍是蠻不錯的嘛,我就動手本身寫了一個項目,引用了開源庫satellite-menu,引用方法爲:佈局
引用完了以後呢?就開始寫代碼了,開始的時候能夠仿照下載的example中的例子寫學習
看着沒有什麼問題,咱們就繼續在佈局文件中添加控件,因爲初來乍到,惟恐在細節上擔憂出錯,就直接從example中複製過來,很多錯誤spa
我就習慣性的clean了一下,可是還有一個錯誤,一直沒有找到問題的所在,後來雖然發現了下面的代碼code
xmlns:sat="http://schemas.android.com/apk/res/android.view.ext"
我認爲後邊的android.view.ext是開源類庫中的包名,也就沒在乎,在網上找了,也找到了答案,可是沒有說出緣由,我也就沒在乎,問題的確出在這個地方,這個地方填寫的包名是本項目的包名,當我把包名該爲我本身寫的項目的包名後,再clean下,奇蹟般的好了,以前沒有發現這些問題,如今居然發現了,這也是一種收貨吧。xml
下面就開始個人開源之旅……
1 <?xml version="1.0" encoding="utf-8"?> 2 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:sat="http://schemas.android.com/apk/res/com.example.satellitemenudemo2" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 android:orientation="vertical" > 7 8 <android.view.ext.SatelliteMenu 9 android:id="@+id/menu" 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content" 12 android:layout_gravity="bottom|left" 13 android:layout_margin="8dp" 14 sat:closeOnClick="true" 15 sat:expandDuration="500" 16 sat:mainImage="@drawable/ic_launcher" 17 sat:satelliteDistance="170dp" 18 sat:totalSpacingDegree="90" /> 19 20 <TextView 21 android:id="@+id/textView1" 22 android:layout_width="wrap_content" 23 android:layout_height="wrap_content" 24 android:layout_gravity="bottom|left" 25 android:layout_margin="8dp" 26 android:text="@string/app_name"/> 27 28 </FrameLayout>
簡單介紹下如下的幾個屬性:
sat:closeOnClick="true" //true:選中item後自動關閉;false:選中item後不消失
sat:expandDuration="500" //持續的時間
sat:satelliteDistance="170dp" //item距離點擊menu的距離
sat:totalSpacingDegree="90" //item所佔的角度
sat:mainImage="@drawable/ic_launcher" //(沒發現有什麼用)
參考地址:
Android衛星菜單:android-satellite-menu - OPEN 開發經驗庫 http://www.open-open.com/lib/view/open1390737573132.html
Unable to execute dex: Multiple dex files define Landroid錯誤解決 http://www.cnblogs.com/hxxy2003/archive/2013/04/09/3009416.html
兩個開源項目的研究:
siyamed/android-satellite-menu https://github.com/siyamed/android-satellite-menu
daCapricorn/ArcMenu https://github.com/daCapricorn/ArcMenu