gpt4 book ai didi

Android:创建一个带有图像且没有文本的切换按钮

转载 作者:IT老高 更新时间:2023-10-28 13:14:16 26 4
gpt4 key购买 nike

是否可以在 Android 中创建一个有图像但没有文本的切换按钮?理想情况下应该是这样的:

Toggle Button With Image

我看过类似的帖子,答案是更改背景,但我想保留 Holo Light 布局,只是将文本与图像交换。

我需要能够以编程方式更改图像源,

任何想法我会怎么做?

如果无法做到这一点,有没有办法让我可以打开和关闭普通按钮?

最佳答案

  1. 我可以用图片替换切换文本吗

    不,我们不能,尽管我们可以通过覆盖切换按钮的默认样式来隐藏文本,但这仍然不会为我们提供您想要的切换按钮,因为我们无法用图像替换文本。

  2. 如何制作普通的切换按钮

    在您的 res/drawable 文件夹中创建一个文件 ic_toggle

    <selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_checked="false"
    android:drawable="@drawable/ic_slide_switch_off" />

    <item android:state_checked="true"
    android:drawable="@drawable/ic_slide_switch_on" />

    </selector>

    这里 @drawable/ic_slide_switch_on@drawable/ic_slide_switch_off 是您创建的图像。

    然后在同一个文件夹中创建另一个文件,命名为ic_toggle_bg

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+android:id/background"
    android:drawable="@android:color/transparent" />

    <item android:id="@+android:id/toggle"
    android:drawable="@drawable/ic_toggle" />

    </layer-list>

    现在添加到您的自定义主题中,(如果您没有,请在 res/values/ 文件夹中创建一个 styles.xml 文件)

    <style name="Widget.Button.Toggle" parent="android:Widget">
    <item name="android:background">@drawable/ic_toggle_bg</item>
    <item name="android:disabledAlpha">?android:attr/disabledAlpha</item>
    </style>

    <style name="toggleButton" parent="@android:Theme.Black">
    <item name="android:buttonStyleToggle">@style/Widget.Button.Toggle</item>
    <item name="android:textOn"></item>
    <item name="android:textOff"></item>
    </style>

    这将为您创建一个自定义切换按钮。

  3. 如何使用

    在您的 View 中使用自定义样式和背景。

      <ToggleButton
    android:id="@+id/toggleButton"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="right"
    style="@style/toggleButton"
    android:background="@drawable/ic_toggle_bg"/>

关于Android:创建一个带有图像且没有文本的切换按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18598255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com