自定義漂亮的Android SeekBar樣式


系統自帶的SeekBar真是太難看了,不能容忍! 只能自己做了,先來張效果圖

 

第1個Seekbar 背景是顏色,thumb是圖片,上代碼:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <SeekBar  
  2.         android:id="@+id/timeline"  
  3.         android:layout_width="fill_parent"  
  4.         android:layout_height="wrap_content"  
  5.         android:focusable="true"  
  6.         android:maxHeight="4.0dip"  
  7.         android:minHeight="4.0dip"  
  8.         android:paddingLeft="16.0dip"  
  9.         android:paddingRight="16.0dip"  
  10.         android:progressDrawable="@drawable/po_seekbar"  
  11.         android:thumb="@drawable/seekbar_thumb" />  

drawable/po_seekbar.xml:

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <layer-list  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <item android:id="@*android:id/background">  
  5.         <shape>  
  6.             <solid android:color="#ff51495e" />  
  7.         </shape>  
  8.     </item>  
  9.     <item android:id="@*android:id/secondaryProgress">  
  10.         <clip>  
  11.             <shape>  
  12.                 <solid android:color="#ff51495e" />  
  13.             </shape>  
  14.         </clip>  
  15.     </item>  
  16.     <item android:id="@*android:id/progress">  
  17.         <clip>  
  18.             <shape>  
  19.                 <solid android:color="#ff996dfe" />  
  20.             </shape>  
  21.         </clip>  
  22.     </item>  
  23. </layer-list>  

drawable/seekbar_thumb.xml:

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/seekbar_thumb_normal" />  
  5.     <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/seekbar_thumb_pressed" />  
  6.     <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/seekbar_thumb_pressed" />  
  7.     <item android:drawable="@drawable/seekbar_thumb_normal" />  
  8. </selector>  


seekbar_thumb_pressed.png:

 

seekbar_thumb_normal.png:

第2個和第3個seekbar都是圖片實現的

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <SeekBar  
  2.     android:id="@+id/sb_detail_play_progress"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="wrap_content"  
  5.     android:layout_centerVertical="true"  
  6.     android:layout_gravity="center"  
  7.     android:paddingLeft="15.0dip"  
  8.     android:paddingRight="15.0dip"  
  9.     android:progressDrawable="@drawable/progress_holo_light"  
  10.     android:thumb="@drawable/detail_icon_schedule_ball" />  


drawable/progress_holo_light.xml:

 

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <layer-list  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <item android:id="@*android:id/background" android:drawable="@drawable/volumn_bg" />  
  5.     <item android:id="@*android:id/secondaryProgress">  
  6.         <scale android:drawable="@drawable/volumn_front" android:scaleWidth="100%" />  
  7.     </item>  
  8.     <item android:id="@*android:id/progress">  
  9.         <scale android:drawable="@drawable/volumn_primary" android:scaleWidth="100%" />  
  10.     </item>  
  11. </layer-list>  

volumn_bg.9.png

 

volumn_front.9.png


volumn_primary.png


第3個seekbar

這有個圖片

demo下載鏈接:http://download.csdn.net/detail/w8320273/7800859

 

 

如何制作Seekbar圖片

之前在做Seekbar的時候,反復讓美工做了很多圖都不合適要么不好看,后來也不好意思讓美工繼續做了,於是自己動手做

后面兩個用圖片實現的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 91字節,就是不知道在程序中效果顯示會怎么樣,那就把它復制到項目中替換掉原來的,看看情況如何

接下來再繼續做thumb也就是滑塊

首先看detail_icon_schedule_ball.png 大小40*40 2.48KB,圖片還帶有陰影效果

打開PhotoShop新建40*40,在矩形選框工具右鍵選擇圓形選框工具,按住Shift鍵同時按鼠標左鍵畫出規則圓形,畫的時候最好放大界面

然后填充想要的顏色,在PhotoShop最右邊可以找到不透明度,改為50%

Shift+Ctrl+N新建圖層然后在中間再畫一個圓,填充,再保存然后就OK了

我畫好的樣子:

效果:

沒有陰影效果也還可以吧,需要效果的可以網上找PhotoShop實現陰影的效果,畢竟我也不是專業的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM