2010-03-17 16 views
8

क्या कोई तरीका है कि मैं SeekBar एंड्रॉइड विजेट में पृष्ठभूमि बार छवि को हटा सकता हूं?एंड्रॉइड SeekBar पृष्ठभूमि हटाएं

मैं बस इसके पीछे कोई प्रगति पट्टी वाला स्लाइडर दिखाना चाहता हूं।

Remove this

किसी भी मदद की?

उत्तर

4

ठीक है मैंने अपनी समस्या हल की है।

पृष्ठभूमि निकालने के लिए, यदि आप एक खाली drawable बना सकते हैं और progressDrawable के लिए सेट करने के लिए है:

satBar.setProgressDrawable(invisibleBackground); 

अशक्त करने के लिए यह निर्धारित करना काम करने के लिए प्रतीत नहीं होता।

3

क्या आपने setBackgroundDrawable(null) को आजमाया है?

+0

मेरे पास है। पृष्ठभूमि खींचने योग्य वास्तव में बार के पीछे है। मुझे बार को हटाने का तरीका चाहिए (और स्लाइडर की छवि भी बदलें) – GuyNoir

+0

और इसके बाद मैं इसे प्रारंभ में कैसे बहाल कर सकता हूं? tks – Paul

+1

@ पॉल: 'getBackground()' को पहले कॉल करने का प्रयास करें, परिणाम को कहीं सेव करें, और बाद में इसे 'setBackgroundDrawable() 'के माध्यम से पुनर्स्थापित करें। गैर समांतर नामों के बावजूद, 'GetBackground() '' Drawable' देता है। – CommonsWare

2

ऐसा करने का एक तरीका प्रगति पट्टी का रंग पृष्ठभूमि रंग में बदलना होगा। आपको कस्टम लेआउट का उपयोग करना होगा।

<SeekBar 
    android:layout_width="350px" 
    android:layout_height="25px" 
    android:layout_margin="30px" 
    android:layout_x="60px" 
    android:layout_y="185px" 
    android:id="@+id/seekbar" 
    android:progressDrawable="@drawable/myprogress" 
/> 

एक कस्टम लेआउट नीचे दिया गया है - रंग के साथ चारों ओर खेलने:

<?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> 
    <corners android:radius="5dip" /> 
    <gradient 
      android:startColor="#ff9d9e9d" 
      android:centerColor="#ff5a5d5a" 
      android:centerY="0.75" 
      android:endColor="#ff747674" 
      android:angle="270" 
    /> 
</shape> 
</item> 


<item 
android:id="@android:id/progress" 
> 
<clip> 
    <shape> 
     <corners 
      android:radius="5dip" /> 
     <gradient 
      android:startColor="#9191FE" 
      android:centerColor="#9191FE" 
      android:centerY="0.75" 
      android:endColor="#9191FE" 
      android:angle="270" /> 
    </shape> 
</clip> 
</item> 

27

एक सरल तरीका एक नया drawable बनाने की आवश्यकता नहीं है कि नहीं है। आप सेट अपने xml परिभाषा निम्नलिखित

android:progressDrawable="@android:color/transparent" 

या यदि आप इसे अपने कोड में क्या करना चाहते हैं:

mySlider.setProgressDrawable(new ColorDrawable(android.R.color.transparent)); 
+0

उपरोक्त @GuyNoir के समाधान से बेहतर समाधान जिसके लिए – Guy

+0

बनाया जाने वाला कृत्रिम "अदृश्य ड्रॉबल" की आवश्यकता है बस एक नोट: आप # 0000 का उपयोग नहीं कर सकते हैं, लेकिन @android: रंग/पारदर्शी कार्यों का उपयोग कर सकते हैं। – sidon

+0

लेकिन यह होलो लाइट थीम पर क्षैतिज रेखा को भी हटा देता है। मैं इसे रखना चाहता हूं। – lalitm

0

एक xml फ़ाइल seekbar_progress.xml बना सकते हैं और drawable folder.Here धारियों में यह जगह एक है छवि, एक छवि लें और इसे drawable फ़ोल्डर में रखें।

seekbar_progress.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/stripes" 
     android:tileMode="repeat" 
     android:antialias="true" 
     android:dither="true" 
     android:filter="false" 
     android:gravity="left" 
    /> 
    </clip> 
</item> 
</layer-list> 

अब आप अपने main xml फ़ाइल कि seekbar कोड चल रहा है, drawable folder.here seekbar में एक छवि और दुकान ले एक छवि है।

<SeekBar 
      android:id="@+id/seekbar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/seekbar" 
      android:progressDrawable="@drawable/seekbar_progress"/> 
संबंधित मुद्दे