2011-10-10 14 views
5

मैं एक छवि दृश्य का पैडिंग सेट करने का प्रयास कर रहा हूं। मेरा कोडएंड्रॉइड ImageView setPadding का कोई प्रभाव नहीं है

private void createEpisodeView() { 
    float scale = this.getResources().getDisplayMetrics().density; 
    int padding = (int) (PADDING * scale + 0.5f); 

    rlItemsRoot = (LinearLayout) findViewById(R.id.rl_items_root); 

    for (int i = 0; i < GameLevels.TOTAL_EPISODES; i++) { 
     ImageView iv = new ImageView(this); 

     iv.setPadding(padding, padding, padding, padding);   
     iv.setBackgroundResource(R.drawable.icon_small); 

     rlItemsRoot.addView(iv); 
    } 

} 

पर इसका कोई प्रभाव नहीं है। लेकिन जब मैं इसे एक्सएमएल में सेट करता हूं तो यह ठीक दिखता है।

+0

पैडिंग डिफ़ॉल्ट रूप से पिक्सेल में व्यक्त किया जाता है जब हम गतिशील रूप से इसे सेट कर रहे हैं .. xml में आप पीएक्स में डुबकी या –

+0

में डुबकी का उपयोग कर रहे हैं, मैं एक्सएमएल में डुबकी का उपयोग कर रहा हूं और यहां मैं पिक्स को डीआईपी में परिवर्तित कर रहा हूं। और 5 निरंतर int में रूपांतरण के प्रभाव को रद्द करना है। i.e 0.7 int में 0 है लेकिन यदि आप 0.5 जोड़ते हैं तो यह नहीं होगा। –

उत्तर

14

एक तुम अपने आप को देखा है आप

iv.setBackgroundResource(R.drawable.icon_small); 

यह प्रयोग कर रहे हैं imageView के लिए पृष्ठभूमि सेट हो जाएगा। पृष्ठभूमि छवि पूरे दृश्य को भर देगी क्योंकि यह दृश्य में सभी सामग्री के पीछे है।

उपयोग

iv.setImageResource(R.drawable.icon_small); 

बजाय।

+0

महान thnx ..... –

+0

+1 अच्छी अवधारणा। –

+1

धन्यवाद, मुझे खुशी है कि मुझे पैडिंग प्राप्त करने के लिए छविदृश्य के चारों ओर अनावश्यक लाइनरलेआउट रैपर की आवश्यकता नहीं थी! – JoonasS

4

स्थापित करने के बजाय

iv.setBackgroundResource(R.drawable.icon_small); 

iv.setImageResource(R.drawable.icon_small); 

की स्थापना की और समस्या हल हो :)

शरीर के किसी भी जानता है कारण उत्तर करें।

+2

जब आप पृष्ठभूमि सेट करते हैं तो आपका पैडिंग खो जाता है। पृष्ठभूमि सेट करने के बाद, आपको पहले सेट नहीं करने के लिए 'सेट पैडिंग (..)' करना होगा। यह 'setBackgroundDrawable (..)' के लिए प्रलेखन में इंगित किया गया है, लेकिन Google ने 'setBackgroundResource (..)' के लिए इसका उल्लेख करने की उपेक्षा की है। –

+1

किसी अन्य व्यक्ति के उत्तर को स्वीकार करना भी एक अच्छा विचार है –

+1

@HamzehSoboh किया। सुधार के लिए धन्यवाद :-) –

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