2013-04-04 17 views
6

Bir arama çubuğunu özelleştirmeye çalışıyorum. Bu çoğunlukla çalışıyorum, ancak bu arama çubuğunun yuvarlak kenarlarını çıkaramıyorum. Bununla ilgili birçok soru olduğunu biliyorum ve 0dp köşelerinin uygulanmasına yardımcı olacağına inanıyorum, ancak bu şekli nerede kullanacağımı bilmiyorum. Şekli görüntülemeye çalıştığımda, keskin kenarlar elde ediyor ancak arka planım görünmüyor, siyah dikdörtgen bir şekil gösteriyor. Arka planımla keskin kenarlara sahip olmak istiyorum.Özelleştirilmiş bir Seekbar'ın yuvarlak kenarlarını çıkarma?

enter image description here

seekbarprogrss.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"> 
     <bitmap 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:tileMode="repeat" 
      android:antialias="true" 
      android:dither="false" 
      android:filter="false" 
      android:gravity="left" 
      android:src="@drawable/cover_back" /> 
    </item> 
    <item 
     android:id="@android:id/progress" 
     android:drawable="@drawable/seek_progress_bg"/> 

</layer-list> 

seek_progress_bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item> 
     <clip> 
     <bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
      android:src="@drawable/cover_front" 
      android:tileMode="repeat" 
      android:antialias="true" 
      android:dither="false" 
      android:filter="false" 
      android:gravity="left" 
     /> 
     </clip> 
    </item> 

</layer-list> 

Seekbar uygulama

<SeekBar 
     android:id="@+id/seekBar1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/button2" 
     android:progress="0" 
     android:secondaryProgress="0" 
     android:padding="0dp" 
     android:thumbOffset="0dp" 
     android:progressDrawable="@drawable/seekbarprogrss" 
     android:thumb="@drawable/cover" 

cevap

6

seekbar Özelleştirme,

public class mSeekbar extends SeekBar{ 
    public seekBar (Context context) { 
     super(context); 
     Initialise(); 
    } 
    public seekBar (Context context, AttributeSet attrs) { 
     super(context, attrs); 
     Initialise(); 
    } 
    public seekBar (Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     Initialise(); 
    } 
    private void Initialise(){ 
     this.setBackgroundDrawable(getResources().getDrawable(R.drawable.shape)); 
     this.setProgressDrawable(getResources().getDrawable(R.drawable.seek_bar_base)); 
    } 
} 

sonra için mSeekbar.java bir Özel Class oluşturma xml

<"packageName".seekBar 
     android:id="@+id/seekBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:thumb="@drawable/red_front" 
     android:padding="0dp" 
     android:progress="0" 
     android:indeterminate="false" 
     android:secondaryProgress="0" 
     android:thumbOffset="0dp"/> 

Kullanım için bu bölümü eklemek

İlk You Bu Drawables

seek_bar_base.xml

<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@android:id/background"> 
     <bitmap 
      android:src="@drawable/gray_back" 
      android:tileMode="repeat"> 
     </bitmap> 
    </item> 
    <item 
     android:id="@android:id/progress"> 
     <layer-list 
      xmlns:android="http://schemas.android.com/apk/res/android" > 
      <item> 
       <clip > 
        <bitmap 
         xmlns:android="http://schemas.android.com/apk/res/android" 
         android:src="@drawable/gray_front" 
         android:tileMode="repeat"/> 
       </clip> 
      </item> 
     </layer-list> 
    </item> 
</layer-list> 

<shape 
     xmlns:android="http://schemas.android.com/apk/res/android" > 
     <corners android:radius="0dp"/> 
    </shape> 

Çıkan kullanılan shape.xml,

enter image description here gray_back.jpg

enter image description here gray_front.jpg

enter image description here red_front.jpg