2015-12-14 3 views
7

Ich habe eine benutzerdefinierte seekbar, die nicht ganz funktioniert.Wie kann ich eine ProgressDrawable-Größe einer benutzerdefinierten Suchleiste auf kleiner als die ProgressBackground

Ich möchte die seekbar wie folgt aussehen:

Notice the progress bar is 'skinnier' than the background

Aber das ist so nah wie ich in der Lage gewesen

The progress bar and background are the same size

Ignorieren der leichte Färbung und Größe Probleme zu bekommen Das Problem, das ich habe, ist mit der grünen progress Größe. Gibt es eine Möglichkeit, dies kleiner als den Hintergrund zu machen? Ich habe versucht size und padding Tags in der XML, und sogar versucht, mit zwei Rechtecke übereinander mit Clip gravity fummeln, aber noch kein Glück.

Hier ist meine Seekbar ziehbar

<?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 android:shape="rectangle"> 
      <corners android:radius="20dp" /> 
      <solid android:color="@color/fofo_grey" /> 

     </shape> 
    </item> 

    <item android:id="@android:id/progress"> 

     <clip> 
      <shape android:shape="rectangle"> 
       <corners android:radius="20dp" /> 
        <solid android:color="@color/signup_green" /> 
      </shape> 
    </clip> 
    </item> 

</layer-list> 

Und die SeekBar im Layout Fragment

<SeekBar 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/seekBar" 
    android:layout_below="@+id/textView6" 
    android:layout_centerHorizontal="true" 
    android:splitTrack="false" 
    android:progressDrawable="@drawable/custom_seekbar" 
    android:thumb="@drawable/thumb_seekbar" 
    android:max="100" 
    android:progress="50" 
    android:indeterminate="false" /> 
+0

SeekBar seekBar = (SeekBar) findViewById bis pseekbar (R.id.seekBar); seekBar.setScaleY (2f); seekBar.setScaleX (2f); –

+0

Kein Glück hier, ich habe Angst, das hat die ganze 'Seekbar' so groß gemacht. – BlitzKraig

Antwort

9
<?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 android:shape="rectangle"> 
      <corners android:radius="20dp"/> 
      <solid android:color="@color/fofo_grey" /> 

     </shape> 
    </item> 

    <item android:id="@android:id/progress"> 

     <clip> 
      <shape android:shape="rectangle"> 
       <corners android:radius="20dp"/> 
        <solid android:color="@color/signup_green" /> 
       <stroke android:width="6dp" 
         android:color="@color/fofo_grey" /> 
      </shape> 
    </clip> 
    </item> 

</layer-list> 

nur Schlaganfall Attribut in SeekBar drawable

+0

Dank David, kam zu dieser Lösung in meiner eigenen Antwort. Ich werde Ihre als akzeptiert markieren, da Sie auf das Geld waren. – BlitzKraig

+0

Das ist Arbeit für mich, nachdem ich meinen Tag verbracht habe. –

5

Managed dieses Problem zu beheben. Kann nicht glauben, dass es mir lange so nahm der Lösung zu denken ...

<clip> 
      <shape android:shape="rectangle"> 
       <stroke android:color="@color/fofo_grey" android:width="6dp"/> 
       <corners android:radius="20dp" /> 
       <solid android:color="@color/signup_green" /> 
      </shape> 
     </clip> 

Added ein stroke mit der gleichen Farbe wie der Hintergrund-Element und gezwickt die strokewidth die gewünschte Wirkung zu erzielen.

Finished effect

7

für den Fortschritt Änderungshöhe addieren drawble nur android:minHeight="2dip" und android:maxHeight="2dip" fügen xml

+0

Danke. Diese Lösung hat für mich funktioniert <3 – ThanosFisherman

Verwandte Themen