2010-08-26 16 views
84

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

क्या रेडियो बटन आइकन बदलना संभव है? उदाहरण के लिए, क्या प्रत्येक पंक्ति के लिए एक कस्टम लेआउट बनाना संभव है और उस लेआउट में मेरा स्वयं का आइकन संदर्भित करें और फ़ॉन्ट एट अल को बदलें।

उत्तर

156

हाँ यह संभव आप res/values ​​/ styles.xml पर, रेडियो बटन के लिए अपनी शैली को परिभाषित कदम उठाने होंगे:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="CustomTheme" parent="android:Theme"> 
    <item name="android:radioButtonStyle">@style/RadioButton</item> 
</style> 
<style name="RadioButton" parent="@android:style/Widget.CompoundButton.RadioButton"> 
    <item name="android:button">@drawable/radio</item> 
</style> 
</resources> 

'रेडियो' यहाँ स्टेटफुल drawable, radio.xml होना चाहिए:

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:state_window_focused="false" 
     android:drawable="@drawable/radio_hover" /> 
    <item android:state_checked="false" android:state_window_focused="false" 
     android:drawable="@drawable/radio_normal" /> 
    <item android:state_checked="true" android:state_pressed="true" 
     android:drawable="@drawable/radio_active" /> 
    <item android:state_checked="false" android:state_pressed="true" 
     android:drawable="@drawable/radio_active" /> 
    <item android:state_checked="true" android:state_focused="true" 
     android:drawable="@drawable/radio_hover" /> 
    <item android:state_checked="false" android:state_focused="true" 
     android:drawable="@drawable/radio_normal_off" /> 
    <item android:state_checked="false" android:drawable="@drawable/radio_normal" /> 
    <item android:state_checked="true" android:drawable="@drawable/radio_hover" /> 
    </selector> 

फिर कस्टम थीम को या तो संपूर्ण ऐप या अपनी पसंद की गतिविधियों पर लागू करें।

विषयों और शैलियों के बारे में अधिक जानकारी के लिए http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/ पर अच्छी मार्गदर्शिका देखें।

+12

आप, साथ ही एंड्रॉयड सेट कर सकते हैं से:, बल्कि इसके लिए एक अलग कस्टम शैली को परिभाषित करने की तुलना में रेडियो बटन पर ही बटन संपत्ति । –

+6

सच है, लेकिन यह बहुत अच्छा अभ्यास नहीं है, क्योंकि आपके पास आमतौर पर केवल एक रेडियो बटन होता है। –

+0

@ कॉन्स्टेंटिनबुरोव क्या होगा अगर मैं 9 पैच छवि का उपयोग कर रहा हूं? – Hades

28

आप सामान्य बटन जैसे रेडियोधर्टन में कस्टम छवि डाल सकते हैं। उस के लिए drawable फ़ोल्डर में एक एक्सएमएल फ़ाइल बनाने जैसे

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/sub_screens_aus_hl" 
    android:state_pressed="true"/> 
<item android:drawable="@drawable/sub_screens_aus" 
    android:state_checked="true"/> 
<item android:drawable="@drawable/sub_screens_aus" 
    android:state_focused="true" /> 
<item android:drawable="@drawable/sub_screens_aus_dis" /> 
</selector> 

यहाँ आप radiobutton

के लिए 3 अलग छवियों का उपयोग और की तरह RadioButton को इस फ़ाइल का उपयोग कर सकते हैं:

android:button="@drawable/aus" 
android:layout_height="120dp" 
android:layout_width="wrap_content" 
0

यहाँ शायद एक है त्वरित दृष्टिकोण,

enter image description here

ऊपर दिखाए गए दो चिह्न के साथ, आप एक RadioGroup कुछ रों गुण 'प्रत्येक RadioButton के लिए क्षैतिज

  • लिए ओरिएंटेशन' इस

    enter image description here

    • परिवर्तन RadioGroup की तरह होगा, आइकन देने की कोशिश Button CompoundButton,
    • पैडिंग और आकार समायोजित करें,
    • और चेक किए जाने पर पृष्ठभूमि विशेषता सेट करें।
  • 7

    आसान तरीका केवल रेडियो बटन को बदलने के लिए बस drawable सही

    <RadioButton 
        ... 
        android:button="@null" 
        android:checked="false" 
        android:drawableRight="@drawable/radio_button_selector" /> 
    

    के लिए चयनकर्ता सेट किया गया है और चयनकर्ता है:

    <?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
        <item android:drawable="@drawable/ic_checkbox_checked" android:state_checked="true" /> 
        <item android:drawable="@drawable/ic_checkbox_unchecked" android:state_checked="false" /></selector> 
    

    बस इतना ही

    +0

    सरल समाधान! धन्यवाद! – Mangesh

    1

    है हाँ .. ..` Xml

    से
    android:button="@drawable/yourdrawable" 
    

    और जावा

    myRadioButton.setButtonDrawable(resourceId or Drawable); 
    

    `

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