Android主题.Holo.Dialog如何将蓝色线条更改为橙色

31

Android主题Theme.Holo.Dialog中,线条的默认颜色是蓝色。 我想知道如何将其更改为任何其他颜色,例如在我的情况下是橙色。

我可以通过使用自定义style.xml覆盖主题来更改文本或背景等内容。

   <style name="Theme.MyTheme" parent="@android:style/Theme.Holo.Dialog" >
        <item name="android:textColor">@color/coloroscuro</item>
        <item name="android:textColorHint">@color/coloroscuro</item>
   </style>

但我不知道哪个属性管理线的颜色。

我的意思是主题默认拥有的蓝色线,就像在这个问题中所显示的那样:

如何为Android Holo主题风格的对话框按钮设置样式


默认的蓝色线条在Theme.Holo.Dialog上。我编辑了问题以澄清这一点。谢谢。 - butelo
2
@butelo 我想做类似的事情。最终你创建了一个自定义对话框吗? - bencallis
不行,我最终放弃了尝试,很抱歉。但是最近我发现了一个叫做HoloEverywhere的主题 https://github.com/ChristopheVersieux/HoloEverywhere 如果你能自己修改它,我认为它会很有用。 - butelo
1
永不放弃!永不投降!唉,我也想知道 :-( 他们应该有一种与设计指南样本中的粗体颜色每个都相对应的Holo变体:http://developer.android.com/design/style/color.html - Geeks On Hugs
有声望可以抛出赏金吗?拜托了 :-( - Geeks On Hugs
@AnthonyTanas 这是不可能的,可以参考下面的答案。你必须自己创建。 - Paranoid Android
3个回答

24

我已经为你挖掘了源代码 - 不幸的是,对话框布局中的分隔线是一个带有硬编码颜色背景且没有引用任何主题的视图:

<View android:id="@+id/titleDividerTop"
  android:layout_width="match_parent"
  android:layout_height="2dip"
  android:visibility="gone"
  android:background="@android:color/holo_blue_light" />

所以如果你想改变颜色,你将不得不布局自己的自定义对话框。为了使它更容易,最好从Android源代码库中复制并根据自己的需要进行自定义,但你可能会得到比你需要的更多的东西。


18

1
谢谢提供这个库,但我需要使用Gradle而不是Maven,这可行吗? - wendigo
下一个版本将作为aar上传到Maven Central(现在只是apklib)。 - David Vávra

2

一个技巧是使用没有标题栏的对话框,因此Android不会绘制线条,然后在对话框的布局XML文件中添加标题和线条!例如:

<style name="myDialogStyle" parent="android:style/Theme.Holo.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>

在清单文件中使用:
    <activity
        android:name=".Activity.Mydialog"
        android:theme="@style/myDialogStyle" >
    </activity>

在您的Mydialog布局中,定义标题和行,并使用您想要的颜色和样式!

干杯!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接