android 更改按钮内的Drawable位置

txu3uszq  于 2023-02-02  发布在  Android
关注(0)|答案(1)|浏览(163)
<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="32px"
    android:layout_marginTop="32px"
    android:layout_marginRight="32px"
    android:background="#44C4C5"
    android:drawableEnd="@drawable/ic_ON"
    android:gravity="center"
    android:text="ON"
    android:textFontWeight="300"
    android:textSize="32px"></Button>

如果按钮关闭,安卓可绘制内容应更改为android:drawableLeft=“@drawable/ic_Off”且文本关闭。如果按钮打开,安卓可绘制内容应更改为android:drawableEnd="@drawable/ic_ON”且文本打开。

euoag5mw

euoag5mw1#

为此创建一个自定义布局,其中TextView的左侧和右侧各有一个ImageView。然后,您可以根据按钮处于ON还是OFF状态,以编程方式设置左/右ImageView的可见性。
开_关_按钮.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="#44C4C5">

    <ImageView
        android:id="@+id/offImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_OFF"/>

    <TextView
        android:id="@+id/onOffTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ON"
        android:textFontWeight="300"
        android:textSize="32sp"/>

    <ImageView
        android:id="@+id/onImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_ON"/>

</LinearLayout>

在布局文件中希望按钮所在的位置:

...
    
    <include
        android:id="@+id/onOffButton"
        layout="@layout/on_off_button"/>

    ...

在您的Activity或片段中,您需要使用findViewById<View>(R.id.onOffButton)获取对按钮的引用,并设置一个on click侦听器,以根据状态设置offImageViewonImageView的可见性。

相关问题