2011-05-30 21 views
7

फैलाता है मैं अपनी खुद की आइकन छवि का विस्तार ExpandableListView के संकेतक के रूप में करता हूं, लेकिन आइकन फैला हुआ प्रतीत होता है, मैंने छवि फ़ाइल को ड्रॉइंग और/ड्रायबल-एचडीपीआई में भाग्य के साथ रखने की कोशिश की। अगर मैं अपने स्वयं के आइकन का उपयोग नहीं करता हूं, तो अंतर्निहित एंड्रॉइड अच्छा दिखता है, तो मुझे आश्चर्य है कि छवि आयाम पर कोई प्रतिबंध है, या क्या मैंने कुछ गलत किया है?एंड्रॉइड एक्सपेंडेबल लिस्टव्यू इंडिकेटर/आइकन हमेशा

धन्यवाद!

उत्तर

17

group_indicator.9.png

जो भी छवि आप अपने समूह संकेतक के रूप में प्रयोग कर रहे हैं, यह एक 9 पैच (xxx.9.png) छवि बनाने के लिए और सीमा पिक्सल चारों ओर करने के लिए अपने खींचे क्षेत्रों सेट (जो शायद पारदर्शी हो सकता है)। यह मध्य से छवि खींचने से रोक देगा।

+0

यह काम नहीं कर रहा है .... अगर हम 9 पैच छवि सेट करते हैं तो कोई बदलाव नहीं होता ..... एक समाधान जो मैं लागू करता हूं वह यह है कि यह उसी ऊंचाई की तीर छवि को पृष्ठभूमि के रूप में दिखाता है जहां यह प्रदर्शित होता है .... – Jayesh

+0

आइकन का आकार क्या है? –

+0

@PavanKumar यह इस बात पर निर्भर करता है कि आपको किस आकार की आवश्यकता है। :) –

6

विस्तारणीय सूची एक दर्द है। यह हमेशा प्रतीक खींचता है। एक आसान समाधान एक नौ पैच छवियों का उपयोग करना है जिसमें शीर्ष और नीचे दोनों में केवल एक खिंचाव पिक्सेल होता है। इस प्रकार केवल दो पिक्सल फैले हुए हैं और आपकी बाकी की छवि असम्बद्ध है।

आशा है कि यह कर भावना

+0

"केवल में दोनों ऊपर और नीचे एक खींचे पिक्सेल", इसका मतलब यह है बायीं/दायीं पर कोई खींचे पिक्सेल है? – hzxu

+0

भी, मेरे आइकन अंदर एक त्रिभुज के साथ एक ठोस सर्कल है, यह नौ पैच होने के लिए असंभव लगता है। – hzxu

+0

जब मैं अपने स्वयं के आइकन का उपयोग नहीं करता हूं, तो एंड्रॉइड का अंतर्निर्मित आइकन नहीं बढ़ाया जाता है, इसलिए मुझे लगता है कि समस्या को हल करने का कोई तरीका है। उदाहरण देखने के लिए – hzxu

7

यदि आप एक अलग छवि का उपयोग किए बिना कोडिंग के माध्यम से ऐसा करना चाहते हैं, तो इस तरह मुझे यह काम मिल गया।

(1) की स्थापना को शून्य पर समूह सूचक

(2) समूह लेआउट में अपने कस्टम समूह सूचक भी शामिल है।

(3) groupClickListener जो आपके सूचक की स्थिति को बदलता है।

कोड स्निपेट्स:

(1) mListView.setGroupIndicator(null);

(2) समूह लेआउट में मेरी सूचक शामिल।

<ImageView 
    android:id="@+id/help_group_indicator" 
    android:layout_width="@dimen/help_group_indicator_dimension" 
    android:layout_height="@dimen/help_group_indicator_dimension" 
    android:layout_marginTop="@dimen/help_group_indicator_dimension" 
    android:src="@drawable/down_icon" /> 

(3)

mListView.setOnGroupClickListener(new OnGroupClickListener() { 
    @Override 
    public boolean onGroupClick(ExpandableListView parent, View clickedView, int groupPosition, long rowId) { 
     ImageView groupIndicator = (ImageView) clickedView.findViewById(R.id.help_group_indicator); 
     if (parent.isGroupExpanded(groupPosition)) { 
      parent.collapseGroup(groupPosition); 
      groupIndicator.setImageResource(R.drawable.down_icon); 
     } else { 
      parent.expandGroup(groupPosition); 
      groupIndicator.setImageResource(R.drawable.up_icon); 
     } 
     return true; 
    } 
}); 
संबंधित मुद्दे