2015-10-09 7 views
17

मैं एक कस्टम SeekBar बनाने की कोशिश कर रहा हूं। यह गोल कोनों के रूप में माना जाता है। यहां तक ​​कि SeekBar की प्रगति दोनों तरफ के गोल कोनों में होनी चाहिए। मुझे अंगूठे की जरूरत नहीं है। कुछ इस तरह।कस्टम SeekBar अंगूठे अवांछित पृष्ठभूमि दिखा रहा है

Custom Seekbar with round corners

इस लक्ष्य को हासिल करने के लिए, मैं एक layer-list xml फ़ाइल के रूप में निम्नानुसार कर दिया है, नामित custom_seekbar.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"> 
     <shape android:shape="rectangle"> 
      <corners android:radius="20dp" /> 
      <solid android:color="#F0E9DC" /> 
     </shape> 
    </item> 

    <item android:id="@android:id/secondaryProgress"> 
     <clip> 
      <shape android:shape="rectangle"> 
       <corners android:radius="20dp" /> 
       <solid android:color="#F0E9DC" /> 
      </shape> 
     </clip> 
    </item> 

    <item android:id="@android:id/progress"> 
     <clip> 
      <shape android:shape="rectangle"> 
       <corners android:radius="20dp" /> 
       <solid android:color="#E38F71" /> 
      </shape> 
     </clip> 
    </item> 

</layer-list> 

और चलती दौर कोने से निपटने के लिए, मैं के बारे में सोचा SeekBar के बराबर ऊंचाई के साथ एक सर्कल अंगूठे का उपयोग करना। यहाँ thumb.xml है:

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

    <size android:height="16dp" 
     android:width="16dp"/> 

    <corners android:radius="20dp"/> 

    <solid android:color="#E38F71"/> 

</shape> 

और मैं अपने गतिविधि में SeekBar इस तरह दिखा रही है:

<SeekBar 
     android:layout_width="250dp" 
     android:layout_height="16dp" 
     android:layout_centerInParent="true" 
     android:progressDrawable="@drawable/custom_seekbar" 
     android:thumb="@drawable/thumb" /> 

समस्या सिर्फ अंगूठे है। यह उम्मीद के रूप में प्रदर्शित नहीं हो रहा है।

Custom Seekbar thumb with unwanted background

अगर मैं एक पारदर्शी अंगूठे निर्धारित करते हैं, प्रगति अब दौर नहीं है: यह इस तरह एक अवांछित पृष्ठभूमि है। मैंने अंगूठे के लिए ओवल आकार का उपयोग करने का भी प्रयास किया। कोई मुझे बताओ कि मैं गलत कहां जा रहा हूं? या अगर कोई अन्य तरीका है तो मैं वांछित परिणाम प्राप्त कर सकता हूं। किसी भी तरह की सहायता की सच में प्रशंसा की जाएगी।

+1

के लिए एक कस्टम 'Drawable' वर्ग बना सकते हैं और फोन करके इसका इस्तेमाल' [इस] में तरह setProgressDrawable' (http://stackoverflow.com/a/ 21060826/2252830) उत्तर – pskink

+0

परत सूची – Pavya

+0

@ user3676184 का उपयोग करके thumb.xml बनाएं @ क्या आप कृपया मुझे दिखा सकते हैं कि इसके बारे में कैसे जाना है। मैंने बहुत सी चीजों की कोशिश की लेकिन मुझे जो चाहिए वह नहीं मिला। – Anjani

उत्तर

51

android:splitTrack="false" जोड़कर, आपकी समस्या ठीक हो जाएगी। मैं भी android:shape="oval", बजाय, गोल कोनों के साथ rectangle का प्रयोग करेंगे आपके thumb.xml

+0

मैं "अंडाकार" आकार का उपयोग कर रहा था। यह एक ही मुद्दा था।यही कारण है कि मैंने एक गोल कोने आयत के साथ कोशिश की। अभी भी कुछ भी नहीं बदला। तो मैंने बस इसे इस तरह पोस्ट किया। – Anjani

+3

क्या आप इसे अपने एंड्रॉइड में 'एंड्रॉइड: splitTrack = "false" जोड़ने का प्रयास कर सकते हैं? – Blackbelt

+0

यह कमाल है। बस एक लाइन और मेरी समस्या चली गई है! बहुत बहुत धन्यवाद। तुमने मुझे घंटे बचा लिया! कृपया अपना उत्तर संपादित करें ताकि मैं इसे स्वीकार कर सकूं। – Anjani

संबंधित मुद्दे