2015-02-26 14 views
6

मैंने इस मुद्दे का उत्तर देने वाली पोस्ट की तलाश की है, लेकिन उनमें से कोई भी मेरे लिए काम नहीं कर रहा है, इसलिए मुझे लगता है कि मुझे काम करने के बारे में एक मौलिक गलतफहमी है। मेरे पास एक छवि बटन है जिसमें एक पीएनजी फ़ाइल लागू है। पीएनजी एक सफेद तीर के अपवाद के साथ ज्यादातर पारदर्शी है। मैं setColorFilter साथ तीर हल्का लाल हैं:एंड्रॉइड छवि बटन सेटकॉलरफिल्टर काम नहीं कर रहा है

imageButton.setColorFilter(Color.argb(255, 225, 0, 0)); 

लेकिन यह कोई को प्रभावित किया है। मैंने सेटकोररफिल्टर के संस्करण को विभिन्न पोर्टर-डफ मोड के साथ करने की कोशिश की है, लेकिन इनमें से कोई भी काम नहीं करता है। समस्या क्या हो सकती है या जो भी हो सकता है, उसके बारे में कोई भी विचार बहुत सराहना की जाएगी।

उत्तर

10

आपको सेट से ड्रायरेबल प्राप्त करना होगा क्योंकि सेटकॉल्टरफिल्टर जिसे आप उपयोग करने का प्रयास कर रहे हैं (आपके सेटअप में) उन पर लागू होते हैं।

ImageButton btn = (ImageButton) myLayout.findViewByID(R.id.my_button); 

int mycolor = getResources().getColor(R.color.best_color); 

btn.getDrawable().setColorFilter(mycolor, PorterDuff.Mode.SRC_ATOP); 

जब तक आप एक Drawable वस्तु को सही संदर्भ के रूप में,

e.g. textView.getCompoundDrawables()[2].setColorFilter(...);

जो अपने एक्सएमएल में:

<TextView 
... 
android:drawableLeft="..." 
... 
/> 

आप myDrawableObject.setColorFilter (उपयोग कर सकते हैं) के लिए आपकी पूरी पसंद

संपादित करें:

ImageButton के लिए, imageButton.getDrawable() के लिए drawable android:src="..." के अनुरूप जबकि imageButton.getBackground()android:background="..." संपत्ति के अनुरूप हैं। सुनिश्चित करें कि आप सही ड्रॉबल पर setColorFilter को कॉल करते हैं।

+1

इससे बहुत मदद मिली, लेकिन मुझे पोर्टरडफ.मोड.मुल्टिपली - ड्रॉरेबल.सेटकॉलरफिल्टर (रंग.र्गब (225, 225, 0, 0), पोर्टरडफ.मोड.मल्टीप्ली) का उपयोग करना पड़ा; – Ken

+0

दृश्य से आकर्षित करने के लिए खुद को एक आकर्षण की तरह काम किया। –

+0

यह सुनिश्चित करने के लिए आपका अनुस्मारक कि मैं सही ड्रॉइंग का संदर्भ दे रहा था, मेरी समस्या को समझने में मेरी मदद की - मैंने अपनी छवि दृश्य पर "src" के बजाय "खींचने" के रूप में अपना चित्रकारी सेट किया था। – beyondtheteal

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