系統自帶的SeekBar真是太難看了,項目需要,只能自定義了,先來張效果圖
第一個Seekbar 背景是顏色,thumb是圖片,上代碼:
- <SeekBar
- android:id="@+id/timeline"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:focusable="true"
- android:maxHeight="4.0dip"
- android:minHeight="4.0dip"
- android:paddingLeft="16.0dip"
- android:paddingRight="16.0dip"
- android:progressDrawable="@drawable/po_seekbar"
- android:thumb="@drawable/seekbar_thumb" />
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@*android:id/background">
- <shape>
- <solid android:color="#ff51495e" />
- </shape>
- </item>
- <item android:id="@*android:id/secondaryProgress">
- <clip>
- <shape>
- <solid android:color="#ff51495e" />
- </shape>
- </clip>
- </item>
- <item android:id="@*android:id/progress">
- <clip>
- <shape>
- <solid android:color="#ff996dfe" />
- </shape>
- </clip>
- </item>
- </layer-list>
- <?xml version="1.0" encoding="utf-8"?>
- <selector
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/seekbar_thumb_normal" />
- <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/seekbar_thumb_pressed" />
- <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/seekbar_thumb_pressed" />
- <item android:drawable="@drawable/seekbar_thumb_normal" />
- </selector>
seekbar_thumb_pressed.png:
seekbar_thumb_normal.png:
第2個和第3個seekbar都是圖片實現的
- <SeekBar
- android:id="@+id/sb_detail_play_progress"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_centerVertical="true"
- android:layout_gravity="center"
- android:paddingLeft="15.0dip"
- android:paddingRight="15.0dip"
- android:progressDrawable="@drawable/progress_holo_light"
- android:thumb="@drawable/detail_icon_schedule_ball" />
drawable/progress_holo_light.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@*android:id/background" android:drawable="@drawable/volumn_bg" />
- <item android:id="@*android:id/secondaryProgress">
- <scale android:drawable="@drawable/volumn_front" android:scaleWidth="100%" />
- </item>
- <item android:id="@*android:id/progress">
- <scale android:drawable="@drawable/volumn_primary" android:scaleWidth="100%" />
- </item>
- </layer-list>
volumn_front.9.png
volumn_primary.png
第3個seekbar
這有個圖片
demo下載鏈接:http://download.csdn.net/detail/w8320273/7800859
如何製作Seekbar圖片
之前在做Seekbar的時候,反覆讓美工做了很多圖都不合適要麼不好看,後來也不好意思讓美工繼續做了,於是自己動手做
以上圖片是在別人播放器里扣出來的圖,我自己用PhotoShop也仿照做出了一樣的圖
後面兩個用圖片實現的Seekbar是從優酷客戶端扣出來的,打開volumn_bg.9.png、volumn_front.9.png、volumn_primary.9.png ,放大到可以看很清楚,發現圖片四周都是黑點,這就是傳說中的 .9圖片(不瞭解的先弄明白再繼續),再看看大小3*25 90字節。
開始動手!
第一步當然要先打開PhotoShop啦
然後新建,如圖:
這裏的大小1*23 與 volumn_bg.9.png的大小3*25 明顯不符,不過這正是使用到.9圖片的目的
新建完成後,按Ctrl 加+鍵持續放大
在紅色箭頭所指方向選擇矩形選框工具,然後畫出一個像素的點
按方向鍵 ↑↓ 調整位置到居中
然後在選框中右鍵-填充-內容-使用-顏色,可以隨意找喜歡的顏色,volumn_primary.9.png放大後看到居中的點是藍色的,那我就來個紅色的
文件-存儲爲Web所用格式 保存名爲volumn_primary.png,保存後大小爲932字節,使用.9處理過後,它就會縮小10倍了
打開draw9patch.bat 使用draw9patch,直接將剛纔保存的圖片拖入程序中
在SDK路徑下tools文件夾下面可以找到draw9patch,在這裏提示下,某些SDK下的draw9patch不能使用,比如我的SDK:adt-bundle-windows-x86_64-20140321,SDK比較新,後來我就找了個比較老的,就可以用了 下載連接:http://download.csdn.net/detail/w8320273/7813455
照着volumn_primary.9.png給它畫黑點
在Draw9 patch中 Ctrl+S 保存,還是老名字volumn_primary.png,下圖可以看到已經自動命名成volumn_primary.9.png,大小也變成了3*25 89字節,就是不知道在程序中效果顯示會怎麼樣,那就把它複製到項目中替換掉原來的,看看情況如何
接下來再繼續做thumb也就是滑塊
首先看detail_icon_schedule_ball.png 大小40*40 2.48KB,圖片還帶有陰影效果
打開PhotoShop新建40*40,在矩形選框工具右鍵選擇圓形選框工具,按住Shift鍵同時按鼠標左鍵畫出規則圓形,畫的時候最好放大界面
然後填充想要的顏色,在PhotoShop最右邊可以找到不透明度,改爲50%
Shift+Ctrl+N新建圖層然後在中間再畫一個圓,填充,再保存然後就OK了
我畫好的樣子:
效果:
沒有陰影效果也還可以吧,需要效果的可以網上找PhotoShop實現陰影的效果,畢竟我也不是專業的
建議純顏色還是用第一種Seekbar,純顏色,不用這麼麻煩,需要更炫麗的效果那就得用這種了