【问题标题】:customizing android ToggleButton display text自定义 android ToggleButton 显示文本
【发布时间】:2013-05-21 16:51:58
【问题描述】:

最近,我正在开发的应用程序上的 ToggleButtons 失去了它的绿灯指示灯。我从各种教程开始,收集了一组 9 个补丁指示器,以使它们再次正常工作。唯一的问题是文本现在位于指示器的顶部,如下所示:

我想要顶部的文本,就像旧的切换按钮一样...有什么办法吗?

btn_toggle_bg.xml:

<?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:drawable/btn_default" />
    <item android:id="@+android:id/toggle" android:drawable="@drawable/btn_toggle" />
    </layer-list>

我的 btn_toggle.xml:

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

以及我活动中的切换按钮标签:

        <ToggleButton 
            android:background="@drawable/btn_toggle_bg"
            style="@style/OurThemeName" 
            android:textOff="@string/fertilizer" 
            android:textOn="@string/fertilizer" 
            android:id="@+id/toggleFertilizer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checked="false">
        </ToggleButton>
        <ToggleButton 
            android:background="@drawable/btn_toggle_bg"
            style="@style/OurThemeName" 
            android:textOff="@string/irrigation" 
            android:textOn="@string/irrigation" 
            android:id="@+id/toggleIrrigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checked="false">
        </ToggleButton>

差点忘了themes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Overwrite the ToggleButton style -->
<style name="Widget.Button.Toggle" parent="android:Widget">
    <item name="android:background">@drawable/btn_toggle_bg</item>
    <item name="android:textOn">On</item>
    <item name="android:textOff">Off</item>
    <item name="android:disabledAlpha">?android:attr/disabledAlpha</item>
</style>

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

【问题讨论】:

  • 我最终只使用了全息主题 9 补丁切换按钮。您可以在 drawable 文件夹中找到它们以及默认的切换按钮,并且它们的格式已经正确,可以放置文本等

标签: android formatting togglebutton


【解决方案1】:

您需要在 9-Patch 中设置 Fill Area。您可以使用 Draw 9-patch 工具在图像的右侧和底部添加这些区域,包括它们。这样您就可以定义文本标签的区域。

查看this tutorial 解释 9-Patch 的工作原理。

【讨论】:

  • 是的,看起来这就是我所需要的……不过,我现在的指示灯都偏离了中心,所以我会玩它
猜你喜欢
  • 1970-01-01
  • 2013-01-22
  • 2015-10-05
  • 2015-09-19
  • 1970-01-01
  • 2014-01-05
  • 2015-04-08
  • 1970-01-01
相关资源
最近更新 更多