2015-09-10 13 views
5

मैंने रंग के बारे में कुछ धागे पढ़े हैं, लेकिन उनमें से सभी को style.xml के माध्यम से सेट करना है।रंग बदलें नियंत्रण रंग सक्रिय रूप से

अभी के लिए मैं रंग निर्धारित करने के लिए इसका उपयोग कर रहा हूं।

<style name="Color1SwitchStyle"> 
    <item name="colorControlActivated">#0e8488</item> 
</style>' 

यह XML का उपयोग कोड का उपयोग कर उदाहरण के लिए, बिना एक SwitchCompat/चेकबॉक्स का रंग बदलने के लिए संभव है?

+0

आप इस पर एक नज़र था है? http://stackoverflow.com/a/27879897 – Sree

+0

yup, लेकिन मुझे नहीं पता कि कोड के माध्यम से ColorStateList तक कैसे पहुंचे। –

+0

http://stackoverflow.com/a/17788095 – Sree

उत्तर

31

वास्तव में, यह करना मुश्किल नहीं है।

उदाहरण:

int[][] states = new int[][] { 
     new int[] {-android.R.attr.state_checked}, 
     new int[] {android.R.attr.state_checked}, 
}; 

int[] thumbColors = new int[] { 
     Color.BLACK, 
     Color.RED, 
}; 

int[] trackColors = new int[] { 
     Color.GREEN, 
     Color.BLUE, 
}; 

SwitchCompat switchCompat = (SwitchCompat) findViewById(R.id.switchControl); 
AppCompatCheckBox checkBox = (AppCompatCheckBox) findViewById(R.id.checkbox); 
checkBox.setSupportButtonTintList(new ColorStateList(states, thumbColors)); 
DrawableCompat.setTintList(DrawableCompat.wrap(switchCompat.getThumbDrawable()), new ColorStateList(states, thumbColors)); 
DrawableCompat.setTintList(DrawableCompat.wrap(switchCompat.getTrackDrawable()), new ColorStateList(states, trackColors)); 
+0

एक आकर्षण की तरह काम करता है! – enyciaa

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