[Android] एंड्रॉइड - मैं लेआउट्स के लिए एक चयनकर्ता कैसे बना सकता हूं (जैसे कि इमेजबटन चयनकर्ता)


Answers

Question

मेरे पास एक इमेजबटन और एक रेखीय लयआउट है जो उस बटन को लपेटता है, जैसे:

<LinearLayout
        android:id="@+id/homeButtonLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/p_buttons_background"
        android:orientation="vertical" >

        <ImageButton
            android:id="@+id/homeButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10px"
            android:background="@drawable/home_icon"
            android:onClick="goBackToCameraScreen" />
    </LinearLayout>

मैं LinearLayout में ImageButton के चारों ओर एक पृष्ठभूमि रखता हूं, जैसा कि आप ऊपर देख सकते हैं

मैं उस पृष्ठभूमि को बदलने में सक्षम होना चाहता हूँ (अर्थात, चित्रकार की पृष्ठभूमि की नहीं, रैखिकरेखा की पृष्ठभूमि, जब उपयोगकर्ता छवि बटन पर क्लिक करता है)। मैं यह प्रोग्राम प्रोग्राम कर सकता हूं, लेकिन मुझे एक्सएमएल के माध्यम से ऐसा करना है। मैं आसानी से एक चयनकर्ता लिखकर इमेजबटन की पृष्ठभूमि को बदल सकता हूं, जैसे:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
       android:drawable="@drawable/button_pressed" /> <!-- pressed -->
     <item android:state_focused="true"
       android:drawable="@drawable/button_focused" /> <!-- focused -->
     <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

यह ठीक है कि मैं क्या चाहता हूं, सिवाय इसके कि मैं LinearLayout पृष्ठभूमि को बदलना चाहता हूं , और छवि बैटन पृष्ठभूमि नहीं । मैं एक एक्सएमएल चयनकर्ता को कैसे ऊपर बना सकता हूं, लेकिन वास्तव में छवि बैटन पृष्ठभूमि के बजाय रैनेयर लेआउट की पृष्ठभूमि को बदलता है ??

पहले ही, आपका बहुत धन्यवाद!! =)