【问题标题】:How to shift text on a button which is currently pressed?如何在当前按下的按钮上移动文本?
【发布时间】:2012-05-08 13:22:51
【问题描述】:

我想稍微移动一下当前按下的按钮上的文本。在我的例子中,按钮有自定义背景,如果文本被移动,按钮看起来会更好。

我制作了两张具有不同填充的 NinePath 图像:

并使用选择器设置它们:

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

    <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn"/>

</selector>

这不起作用,当按下按钮时文本保持在其位置上(并且背景被交换)。

我的 NinePath 图像正常吗?有什么方法可以在不设置触摸侦听器的情况下移动文本?

附:已经问过同样的问题,但“答案”正是我尝试过的解决方案:https://stackoverflow.com/a/7677098/694770

【问题讨论】:

    标签: android


    【解决方案1】:

    您的 9-patch 图片看起来不错。也就是说,我遇到了这个问题,因为我遇到了完全相同的问题,而且我的图像也不起作用。

    我最终继承了 Button 并弄乱了填充。 More info here

    【讨论】:

      【解决方案2】:

      试试这个

      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
      
          <item android:text="Pressed state text" android:state_pressed="true"/>
          <item android:text="Default text"/>
      
      </selector>
      

      【讨论】:

      • 它会导致异常,因为您必须指定可绘制对象。但即使它被定义,文本也不会改变。我认为选择器仅适用于可绘制对象。
      猜你喜欢
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2021-12-20
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      相关资源
      最近更新 更多