एंड्रॉइड एडिटेक्स पर प्रोग्रामेबल रूप से ड्रॉएबल राइट कैसे सेट करें?


85

मुझे एक्सएमएल में सेट किए जाने योग्य सेटलाइट के बारे में पता है। लेकिन मुझे इसे प्रोग्रामेटिक रूप से करने की आवश्यकता है क्योंकि यह कुछ स्थिति के अनुसार परिवर्तन है।


9
EditText के लिए setCompoundDrawablesWithIntrinsicBounds () का उपयोग करें ।
पीयूष

जवाबों:


258

आप नीचे दिए गए फ़ंक्शन का उपयोग कर सकते हैं:

editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);

या (यदि आप इसकी आईडी के बजाय ड्रॉबल पास करना चाहते हैं)

editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)

ड्रॉबल लोकेशन के अनुरूप परमेस का क्रम है: लेफ्ट, टॉप, राइट, बॉटम


1
मैं उस ड्रा करने योग्य आईडी को कैसे निर्दिष्ट कर सकता हूं? मूल रूप से मैं उस विशिष्ट
ड्रॉबल के

@ लॉरेंस चॉय हाय सर, इमेज को कैसे चेक किया जाए, यह पहले से ही बाहर है या नहीं। कृपया इस मामले में मेरी मदद करें, और इमेज का रंग कैसे बदलें।
गोथमन एम।

8

यहां और जानें

EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);  
// where params are (left,top,right,bottom)

आप प्रोग्रामेबल पैडिंग को भी प्रोग्रामेटिक रूप से सेट कर सकते हैं:

myEdit.setCompoundDrawablePadding("Padding value");

हाय साहब, इमेज की जांच कैसे की जाती है, पहले से ही बाहर निकलें या नहीं। कृपया इस मामले में मेरी मदद करें, और इमेज का रंग कैसे बदलें
गोथमैन M

4

नीचे की तरह आज़माएँ:

Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);

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

 int img = R.drawable.smiley;
 EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);

4

प्रयत्न:

EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);

फिर आप उस विशिष्ट ड्रॉबल के लिए एक टच श्रोता को जोड़ सकते हैं।


2
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );

यहाँ समझाया गया

setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)

पाठ के बाईं ओर, ऊपर, दाईं ओर और नीचे दिखाई देने के लिए ड्रॉबल्स (यदि कोई हो) सेट करता है। अगर आपको वहां ड्रॉबल नहीं चाहिए तो 1 का उपयोग करें। ड्रॉबल्स की सीमाएं उनके आंतरिक सीमा पर सेट की जाएंगी।


2

एक बार में बाएं और दाएं दोनों को बदलने के लिए मैं इस सिंगल लाइन का उपयोग करता हूं।

download.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_lock_open_white_24dp, 0, R.drawable.ic_lock_open_white_24dp, 0);

1

आप अपने editText दृश्य का उपयोग कर सकते हैं (यहाँ यह txview है) फ़ंक्शन setCompoundDrawablesWithIntrinsicBounds () में बनाया गया है जिसे आप देख रहे हैं।

अपने कोड में मैंने इसे इस तरह उपयोग किया है। txview.setCompoundDrawablesWithIntrinsicBounds (0,0, R.drawable.ic_arrow_drop_up, 0);

txview.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom);

1
आपको ओपी की मदद करने के लिए अपने कोड की व्याख्या करनी चाहिए कि यह उसके प्रश्न का उत्तर क्यों देता है।
मार्कस

0
        et_feedback.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {

                }
              et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,R.mipmap.feedback_new, 0, 0);                
               et_feedback.setTextColor(Color.BLACK);

            }
        });

इसका उपयोग करके ड्रा करने योग्य छुपाएं

et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);

0

अगर इसके लिए एंड्रॉइड ग्राफिक्स की जरूरत है तो यह काम करेगा

Drawable dw = getApplicationContext().getResources().getDrawable(R.drawable.edit);
Button start = (Button)findViewById(R.id.buttonStart);
start.setCompoundDrawablesWithIntrinsicBounds(dw, null, null, null);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.