跳到主要內容

[Android] 使用shape自訂形狀及陰影

shape可以定義下面四種類型的形狀:
    rectangle-矩形(直角矩形、圓角矩形),默認的形狀
    oval-橢圓形、圓形
    line-線形(實線、虛線)
    ring-環形、環形進度條

rectangle


執行結果:



如果填色要填入漸層色的話,需要將solid標籤改成gradient標籤,用法如下:
執行結果:



oval

執行結果:


oval和ring的漸層有三種類型(android:type):linear(線性)、radial(放射性)、sweep(掃描)

如果漸層效果為radial(放射性)的話,必須加上android:gradientRadius屬性(指定漸層的半徑)。
執行結果:

line

線的高度是透過stroke的android:width屬性設置,而size的android:height是定義整個形狀區域的高度,所以size的height必須大於stroke的width
執行結果:

ring

屬於ring的屬性:
    android:innerRadius 內環的半徑
    android:thickness 環的厚度
    android:useLevel 一般設為false,要不然環可能會無法顯示
執行結果:

將環設計成環狀進度條的樣式:

1,在shape標籤外再加上rotate標籤
rotate屬性:
    android:fromDegrees:開始旋轉的角度位置
    android:toDegrees:結束時轉到的角度位置
    android:pivotX:旋轉起點的X軸座標位置,可以是數值、百分比、百分比p
    android:pivotY:旋轉起點的Y軸座標位置,可以是數值、百分比、百分比p

2,在style.xml裡加上style樣式
3,在activity_main.xml裡加上progressBar標籤
執行結果:


Shape加上陰影的方法

將selector標籤改成layer-list標籤,並在原本形狀的item標籤上面再加上一組item標籤,作為陰影的樣式
一定要設置陰影和物件的offset,要不然陰影和物件會重疊,會看不到效果。
執行結果:





參考資料:Keegan小钢

留言

這個網誌中的熱門文章

[iOS] Objective-C 自訂UITableViewCell樣式

Step1 在Storyboard中拉出TableView和按下TableView Cell後要切換的View,並設定對應的class檔 TableView連結至ListController類別,並設定Storyboard ID為ListController 要切換的View連結至ViewController類別,並設定Storyboard ID為viewController Step2 新增CustomCell.xib 新增File(File → New → File...),選擇View,並將檔案命名為CustomCell 開啟CustomCell.xib,把預設的View元件刪掉,然後從元件庫拖曳Table View Cell,並拉好想要的Cell內容排版 Step3 新增自訂Objective-C class給這個NIB檔 新增File(File → New → File...),選擇Cocoa Touch class 需要繼承UITableViewCell Step4 回到CustomCell.xib,將Class連結到CustomTableViewCell Step5 在CustomTableViewCell.h檔中,設定元件變數 Step6 在ListController.h中設定TableView的元件變數,且宣告一個陣列,負責儲存表格上要呈現的資料 Step7 在ListController.m  的viewDidLoad方法中設定TableView的兩個輸出口:dataSource、delegate,並初始化陣列資料 dataSource所連結到的View Controller用來提供表格上Cell的內容 delegate為指定哪一個View Controller需要處理使用者在表格上的操作 Step8 在ListController.m中,實作tableView:numberOfRowsInSection:方法 -通知Table View需要產生多少個Cell(儲存格)來顯示資料 Step9 在ListController.m中,實作tableView:cellForRowAtIndexPat...

[隋堂筆記] Android 長按選單-ContextMenu

ContextMenu可以達到長按某個元件就會出現選單的效果 Step1 建立menu.xml 在res資料夾中 新增menu的資料夾 Resource type選擇menu 在menu資料夾中 新增menu.xml (menu resource file) 在menu.xml中新增item 例如: android:id跟android:title是必要的值 android:orderInCategory為item的排序,值越大,排序就在越下面 ,如果沒有設定這個值,Menu的排序會依照程式碼的排序去排 Step2 在layout設定可以被長按的元件id 如果是要長按文字後會跳出Menu的話,就要設定TextView的id 例如: Step3 在Activity.java裡設定長按方法 1,要在onCreate裡中加上: registerForContextMenu() (註冊可以被長按的元件) 2,覆寫 onCreateContextMenu 方法(顯現Menu時呼叫)           加上 getMenuInflater().inflate(R.menu.menu,menu);           inflate代表灌飽充滿,表示將剛剛建立的menu.xml充進去 3,覆寫 onContextItemSelected 方法(選項被點選時呼叫) 例如: 我設定當按下選項中的Exit選項後,要結束這個app,所以在onContextItemSelected中加上這個行為的程式碼 執行結果: