2015-09-27 22 views
5

Özel bir SeekBar oluşturmaya çalışıyor. Bunu başarmak istiyorum. Şimdiye kadar ne yaptımAndroid - Özel SeekBar - ilerleme çubuğundaki yuvarlak köşeler

enter image description here

budur. İlerleme çubuğundaki köşeleri yuvarlamanın bir yolunu bulamıyorum. Birisi bu konuda yardım edebilir

enter image description here

? İşte

main_activity.xml

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:gravity="center"> 

    <SeekBar 
     android:id="@+id/seekBar1" 
     android:layout_width="match_parent" 
     android:layout_height="30dp" 
     android:progressDrawable="@drawable/styled_progress" 
     android:paddingLeft="15dp" 
     android:paddingRight="15dp" 
     android:progress="90" 
     android:thumb="@drawable/thumbler_small" 
     android:maxHeight="30dp" 
     android:layout_marginTop="125dp" 
     android:layout_marginBottom="15dp" 
     android:indeterminate="false" /> 

</LinearLayout> 

styled_progress.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:id="@android:id/background"> 
    <shape> 
     <gradient 
       android:startColor="#d2e5ff" 
       android:endColor="#d2e5ff" 
       android:angle="45" 
     /> 
     <corners 
       android:bottomRightRadius="7dp" 
       android:bottomLeftRadius="7dp" 
       android:topLeftRadius="7dp" 
       android:topRightRadius="7dp"/> 
    </shape> 
</item> 

<item android:id="@android:id/secondaryProgress"> 
    <clip> 
     <shape> 
      <gradient 
        android:startColor="#808080" 
        android:endColor="#808080" 
        android:angle="270" 
      /> 
      <corners 
       android:bottomRightRadius="7dp" 
       android:bottomLeftRadius="7dp" 
       android:topLeftRadius="7dp" 
       android:topRightRadius="7dp"/> 
     </shape> 
    </clip> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
     <shape> 
      <gradient 
       android:startColor="#c5e6eb" 
       android:endColor="#61cabb" 
       android:angle="45" /> 
      <corners 
       android:bottomRightRadius="7dp" 
       android:bottomLeftRadius="7dp" 
       android:topLeftRadius="7dp" 
       android:topRightRadius="7dp"/> 
     </shape> 

    </clip> 
</item> 
</layer-list> 
+0

Olası kopyası [Yuvarlanmış ilerleme çubuğu içinde yuvarlatılmış ilerleme] (http://stackoverflow.com/questions/25130359/rounded-progress-within-rounded-progress-bar) –

cevap

2

you can see the image here

Bu sulotion bunu yapmak tek yolu buydu benim kodudur. (

<item android:id="@android:id/background"> 
    <shape android:shape="rectangle"> 
     <corners android:radius="5dp" /> 

     <gradient 
      android:angle="270" 
      android:endColor="@color/grey_line" 
      android:startColor="@color/grey_line" /> 
    </shape> 
</item> 
<item android:id="@android:id/secondaryProgress"> 
    <clip> 
     <shape android:shape="oval"> 
      <corners android:radius="5dp" /> 
      <gradient 
       android:angle="270" 
       android:endColor="@color/blue" 
       android:startColor="@color/blue" /> 
     </shape> 
    </clip> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
     <shape android:shape="rectangle"> 
      <corners android:radius="90dp" /> 

      <gradient 
       android:angle="90" 
       android:endColor="@color/colorPrimaryDark" 
       android:startColor="@color/colorPrimary" /> 
     </shape> 
    </clip> 
</item> 

ve bu parmak geçerli:

  <SeekBar 
      android:id="@+id/simpleProgressBar" 
      android:layout_width="fill_parent" 
      android:layout_height="12dp" 
      android:max="100" 
      android:progress="0" 
      android:background="@null" 
      android:shape="oval" 
      android:splitTrack="false" 
      android:progressDrawable="@drawable/progress_background" 
      android:secondaryProgress="0" 
      android:thumbOffset="10dp" 
      android:thumb="@drawable/oval_seekbar_thumb" /> 

şudur (progress_background.xml): Umut bu yardım

bu benim Seekbar olduğunu oval_seekbar_thumb.xml):

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="oval"> 
      <solid android:color="#ffffff" /> 
      <stroke android:color="@color/colorPrimaryDark" android:width="3dp"/> 
      <size android:height="12dp" android:width="12dp"/> 
     </shape> 
    </item> 
</selector> 

Başparmağın yüksekliği, doğru bakacak şekilde arama çubuğunun yüksekliği ile aynı olmalıdır.

İlgili konular