首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >修复:"Android:检测焦点/按下颜色“

修复:"Android:检测焦点/按下颜色“
EN

Stack Overflow用户
提问于 2010-01-14 23:57:07
回答 3查看 23.3K关注 0票数 17

我正在尝试检测按钮和其他元素的焦点/按下颜色。这是必要的,因为我正在开发新的组件,重要的是这些组件看起来像平台的一部分。这些颜色在android sdk上是橙色的,在HTC SenseUI上是绿色的。如果我能检测到颜色,我的组件在两个版本上看起来都像是平台的一部分。

有人知道怎么做吗?

可以创建“选择器”,它使用自定义图像表示默认状态,使用平台默认值表示焦点/选择。

执行以下步骤: 1)在"res/drawable“(例如”red_button.xml“)中创建带有选择器的xml文件:

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

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

    <item android:state_focused="true"
        android:drawable="@android:drawable/btn_default" >
    </item>

    <item 
        android:drawable="@drawable/btn_default_red" >
    </item>
</selector>

2)从文件夹".../android-sdk-mac/platforms/android-1.5/data/res/drawable/“中获取图片"btn_default_pressed.9.png”,然后随意更改颜色(我需要将其更改为红色,对于这个GIMP就足够了)。

3)将修改过的图片放在"res/drawable“中(例如,名称为"btn_default_red.9.png")

4)定义按钮:

<Button
    android:id="@+id/info_button"
    android:layout_width="wrap_content" 
    android:layout_height="37dip"
    android:layout_marginTop="1dip"
    android:background="@drawable/red_button"
    android:text="[Info]" />

就这样。

这是结果:alt text http://img200.imageshack.us/img200/1349/custombutton.png

EN

回答 3

Stack Overflow用户

发布于 2010-04-14 04:34:26

我也有这个问题。如前所述,问题是背景不是简单的颜色,它们是可以呈现各种外观的绘图。然而,我发现了一个可能有帮助的变通方法。如果您的自定义组件看起来与现有组件相似,例如按钮或ListView条目,您只需窃取它们的背景/选择器并将其设置为自定义组件的背景即可。例如,在您的自定义组件构造函数中:

  setBackgroundDrawable(new Button(context).getBackground());

或者更适合于类似列表的组件的背景:

  setBackgroundDrawable(new ListView(context).getSelector());

您可能希望在某种程度上优化该代码,但您已经明白了这一点。

票数 8
EN

Stack Overflow用户

发布于 2010-01-15 00:36:25

那些不是颜色。它们是StateListDrawable中的几个9补丁图像。我怀疑是否会有一种可靠的方法让你确定颜色是什么,一种适用于所有设备和所有Android版本的方法。

票数 6
EN

Stack Overflow用户

发布于 2010-01-15 03:52:22

这几乎是Android ListView Selector Color的副本:

另外,为什么你需要检测颜色?只需nothing,您的小部件就能适应该平台现有的外观和感觉。

或者,如果您正在编写自定义主题,只需使您的主题继承自android:Theme

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2065430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档