Android 如何知道特定安卓手机的颜色

Android 如何知道特定安卓手机的颜色,android,themes,Android,Themes,我看到Android有很多不同的“主题”,这取决于设备。例如,在我的HTC WildFire上,突出显示的颜色是“石灰绿”,模拟器的颜色是橙色 是否需要知道运行我的应用程序的设备的主界面颜色 因此,我可以设置(例如)TextViews背景色以匹配设备主题 编辑:你告诉我这是不可能的,所以 有没有办法用高亮颜色画一个简单的矩形?也许是空按钮 谢谢 我不认为有什么方法可以让您获得默认的高光颜色,但您当然可以通过在布局中的TextView上使用“textColorHighlight=#aarggbb”

我看到Android有很多不同的“主题”,这取决于设备。例如,在我的HTC WildFire上,突出显示的颜色是“石灰绿”,模拟器的颜色是橙色

是否需要知道运行我的应用程序的设备的主界面颜色

因此,我可以设置(例如)
TextView
s背景色以匹配设备主题

编辑:你告诉我这是不可能的,所以

有没有办法用高亮颜色画一个简单的矩形?也许是空按钮


谢谢

我不认为有什么方法可以让您获得默认的高光颜色,但您当然可以通过在布局中的TextView上使用“textColorHighlight=#aarggbb”属性来设置自己的高光颜色。

据我所知,没有办法(我不知道怎么会有)。我想你可以在你自己的应用程序中有几个不同的“主题”,让用户选择一个,以便轻松地至少在某种程度上与他们的其他设置相匹配。

这实际上不是一个指定的颜色,drawables本身实际上被替换在HTC、三星等推出的这些经过修改的Android皮肤上。因此,从编程的角度来看,没有直接的方法可以知道配色方案是什么。你最好的选择是简单地用你自己的配色方案为你的小部件定义你自己的绘图,甚至重复使用stock Android的默认值,但将它们复制到你应用程序的绘图文件夹中,并将它们设置为StateListDrawable,然后将它们应用到你的小部件上。这将确保您在所有平台上获得相同的颜色样式,缺点是您的应用程序将与其余皮肤的方案不匹配。根据应用程序的布局,这可能不是问题。

您可以在视图中使用
@android:drawable/list\u selector\u background
(或代码形式:
android.R.drawable.list\u selector\u background
)。它具有每个默认选择器状态。您也可以在drawable文件夹中自己创建一个选择器,如下所示(名为default_highlight.xml):



并更改任何您可能想要自定义的内容。然后,通过将视图的背景设置为“可绘制”(默认为“高光”或其他任何名称),您可以像任何可绘制视图一样使用它。

编辑文本周围是否也有类似光环的属性?或者更好,你有一个列表/站点,我可以在其中找到所有这些属性吗?我找到了我问题的答案:你不能。edittext周围的光晕是edittext背景的一部分。因此,你必须在SDK和Photoshop中找到可绘制的部分,或者用其他颜色更改橙色部分。是的,这是一个很好的解决方案。。。但我更喜欢我的应用程序显示设备主题。让我了解。。。您是在告诉我构建自己的接口,更改这些参数。我说的对吗?不需要接口。如果创建我在示例中展示的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/list_selector_background" /> <!-- pressed -->
        <item android:state_focused="true"
      android:drawable="@android:drawable/list_selector_background" /> <!-- focused -->
    <item android:drawable="@android:drawable/list_selector_background" /> <!-- default -->
</selector>