【问题标题】:Make default Android orange as focused,pressed,selected state of a custom buttom将默认的 Android 橙色设置为自定义按钮的聚焦、按下、选择状态
【发布时间】:2011-11-16 18:23:05
【问题描述】:

我有一个自定义按钮,但对于聚焦、按下、选择状态,我想要默认的 Android 橙色选择状态,而不是为这些状态制作新的自定义图像。

我怎样才能做到这一点?我应该在这些状态的选择器上写什么?

【问题讨论】:

  • 您需要从android res文件夹中复制android橙色默认图像并粘贴到您的项目中,并将其添加到按钮的可绘制状态列表背景中
  • 你能给我这个文件夹的确切路径吗?
  • 路径是 android-sdk_windows\platforms\android-2.1\data\res\drawable-hdpi\btn_default_pressed 。
  • 酷,明白了。知道如何让这些按钮覆盖我的自定义按钮的正常状态,而不是用纯橙色块替换它吗?
  • 在 Photoshop 中打开您的自定义按钮图像,对其进行编辑并在其上添加橙色渐变。它会在用户选择按钮时显示,而不是显示默认图像

标签: android


【解决方案1】:

查看此代码,它将指导您如何更改每个状态的颜色。

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
    <shape>
        <gradient
            android:startColor="#F5B800"
            android:endColor="#F5B800"
            android:angle="270" />
        <stroke
            android:width="1dp"
            android:color="#ffcc00" />
        <corners
            android:radius="1dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>

<item android:state_focused="true" >
    <shape>
        <gradient
            android:endColor="#F5B800"
            android:startColor="#F5B800"
            android:angle="270" />
        <stroke
            android:width="1dp"
            android:color="#ffcc00" />
        <corners
            android:radius="1dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>

<item>        
    <shape>
        <gradient
            android:endColor="#ff9900"
            android:startColor="#ffcc00"
            android:angle="270" />
        <stroke
            android:width="1dp"
            android:color="#ffcc00" />
        <corners
            android:radius="1dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>
</selector>

【讨论】:

  • 好的,我试过了。但是当我把这个例如 橙色形状被忽略,否则我只看到一个橙色块覆盖我的普通按钮
【解决方案2】:

我确定您想在自定义选择器文件中实现默认的橙色图像,如果是这种情况,那么您可以知道系统使用的所有内置可绘制文件的名称,从这里您可以知道: Android Drawables

一些按钮的默认图像名称是:

  1. btn_default_pressed.9
  2. btn_default_selected.9
  3. btn_default_small_pressed.9
  4. btn_default_small_selected.9

所以现在复制 res/drawable 文件夹中的 9-patch 图像并在任何你想要的地方使用它。

【讨论】:

  • 问题是,我在哪里可以找到它们?所以我可以将它们复制到我的drawable中
  • @hectichavana 好的,也可以在上面的链接中找到。
【解决方案3】:

您是否尝试过不提及这些州?我还没有尝试过,但我想我会说,如果你不提及状态,android 应该使用默认值。

【讨论】:

  • 我确定他只是想访问那个橙色图像。
  • ohhh no ... 忽略我的回答,我只记得不提及状态会使 android 不知道这些状态,所以什么也没有发生。 +1 由@Serdar Dogruyol 回答上述问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
  • 2013-06-08
  • 1970-01-01
相关资源
最近更新 更多