2017-01-24 13 views
5

मैंने प्रोग्रेसबार के रंगों को संभालने के बारे में कुछ विषय देखे हैं लेकिन कोई भी मेरे संदेह का उत्तर नहीं दे सकता है।अनिश्चित क्षैतिज प्रगति के पृष्ठभूमि रंग बदलना

मैं एक क्षैतिज ProgressBar अनिश्चित प्रकार का उपयोग कर रहा हूं। मैं रंगीन प्रगति के दौरान एक पारदर्शी पृष्ठभूमि रखना चाहता हूं लेकिन इसे करने का कोई तरीका नहीं मिल रहा है।

एक सामान्य प्रोग्रेसबार (अनिश्चित नहीं) के लिए मैं progressBar.getProgressDrawable() पर कॉल करके लेयर ड्रायबल प्राप्त कर सकता हूं। फिर findDrawableByLayerId(android.R.id.background) का उपयोग करके, मैं केवल पृष्ठभूमि को टेंट करने में सक्षम हूं।

लेकिन progressBar.getIndeterminateDrawable() का उपयोग करके यह मुझे GradientDrawable देता है, इसलिए मैं उसी प्रक्रिया का पालन नहीं कर सकता।

क्या सभी एपीआई स्तरों के लिए GradientDrawable से रंग प्राप्त करना संभव है? कारण यह है कि, मैं पृष्ठभूमि का रंग प्राप्त कर सकता हूं और इसे बदल सकता हूं।

क्या इसके लिए कोई समाधान है?

उत्तर

0

चरण # 1: अपने प्रोजेक्ट में अपने एसडीके के संसाधनों से drawable/progress_indeterminate_horizontal.xml कॉपी करें।

चरण # 2: अपने प्रोजेक्ट में अपने एसडीके के संसाधनों से drawable-hdpi/progressbar_indeterminate* कॉपी करें।

चरण # 3: अपने प्रोजेक्ट में अपने एसडीके के संसाधनों से drawable-mdpi/progressbar_indeterminate* कॉपी करें।

चरण # 4: पीएनजी फ़ाइलों को अपनी इच्छानुसार देखने के लिए संशोधित करें।

चरण # 5: progress_indeterminate_horizontal.xml को अपनी पीएनजी फ़ाइलों को इंगित करने के लिए संशोधित करें (मानक वाले बनाम)।

चरण # 6: indeterminateDrawable मान के लिए @drawable/progress_indeterminate_horizontal का उपयोग करें।

Source

वरना

इस तरह

progressBar.getIndeterminateDrawable() 
    .setColorFilter(progressBar.getContext().getResources().getColor(<colorId>), 
     PorterDuff.Mode.SRC_IN); 
+0

यह मेरा परियोजना में सभी अनिश्चित प्रगति सलाखों, सही बदल जाएगा में रंग बदल सकते हैं? यदि हां, तो क्या मेरे प्रोजेक्ट में एक प्रगति पट्टी के लिए इसे लागू करने के लिए कोई कामकाज है? – AndroidDev

+0

@AndroidDev, (1।) सभी के लिए और (2।) नहीं, विशेष के लिए – W4R10CK

2

उपयोग रंग फ़िल्टर:

progressBar.getIndeterminateDrawable().setColorFilter(color, PorterDuff.Mode.MULTIPLY); 
1

progressBar.setProgressDrawable (R.drawable.progress_bar);

drawable/progress_bar.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@android:id/background"> 
    <shape> 
     <corners android:radius="2dip" /> 
     <gradient android:startColor="#43ffffff" android:centerColor="#43ffffff" android:centerY="0.75" android:endColor="#43ffffff" android:angle="270" /> 
    </shape> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
     <shape> 
      <corners android:radius="2dip" /> 
      <gradient android:startColor="#fff" android:endColor="#fff" android:angle="270" /> 
     </shape> 
    </clip> 
</item> </layer-list> 

आप इस progress_bar.xml drawable

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