【问题标题】:Android: Use default highlight colors in a custom buttonAndroid:在自定义按钮中使用默认突出显示颜色
【发布时间】:2011-04-10 19:53:21
【问题描述】:

我想在我的 android 应用程序中使用一个按钮,但我想自定义它的外观。但是,我希望按钮的突出显示颜色和选定颜色与默认颜色相同(即深橙色和浅橙色渐变,或主题颜色提供的任何颜色)。

有没有办法获得默认的高亮/选定的可绘制对象并将其用作我的按钮在选定和高亮状态下的填充?

谢谢!

【问题讨论】:

    标签: android button colors themes


    【解决方案1】:

    你要求两个不同的东西,你想要drawables还是colorcode?​​p>

    无论如何,您可以在这里找到可绘制对象的名称:http://androiddrawableexplorer.appspot.com/ 我不知道你是否可以直接从你的应用程序中使用它们,或者你是否必须先将它们保存到你的 drawables 文件夹中,但你可以在你的 sdk 中找到它们。如果您想要颜色代码,请使用 gimp 从图片中提取它们。

    【讨论】:

    • 我想我想要颜色代码,然后我可以创建自己的可绘制对象?基本上我想确保我的突出显示/选择的颜色在每个设备上总是一致的。所以我不想用橙色硬编码,因为这可能会在未来发生变化,并且某些设备使用不同的颜色。相反,我想以编程方式获取颜色代码。
    • 由于 android 使用可绘制对象而不是颜色代码作为按钮,您将无法以任何合理的编程方式获取颜色代码。好吧,我确信有办法,但我不认为这是值得的。
    • ok.. gotcha.. 所以我只需要知道如何访问包含默认选择/突出显示颜色的可绘制对象......
    • 您可以在我发布的链接中找到一个 xml 和一个 java 示例。
    【解决方案2】:

    您似乎可以在选择器中使用选择器作为可绘制对象! (你可以或不应该使用@android:drawable/btn_default_selected,因为它是私有的) 这意味着您可以编写自己的选择器,并为您想要默认行为的项目使用整个默认的 android 选择器。

    我使用了这个选择器

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item android:drawable="@android:drawable/btn_default" android:state_pressed="true"/>
    
    </selector>
    

    并将其作为背景添加到线性布局中。 我不知道为什么,但这也弄乱了填充/边距,这就是我将它们设置为 0 的原因。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/background_linear_layout_button"
        android:padding="0dp"
        android:layout_margin="0dp"
        android:orientation="vertical" >
    
        <!-- YOUR LAYOUT THAT ACTS LIKE A BUTTON -->
    </LinearLayout>
    

    结果是你有未按下状态的父背景颜色和按下状态的android背景颜色。

    【讨论】:

      【解决方案3】:

      Selectors 是您正在寻找的。谷歌四处寻找教程。这是one

      我假设你可以在 Android 源代码中找到默认选择器。

      【讨论】:

      • 有没有办法以编程方式获取默认选择器颜色?
      猜你喜欢
      • 1970-01-01
      • 2012-11-09
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      相关资源
      最近更新 更多