Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android Theme.Holo.Dialog changing blue lines to orange

Default color for lines on Android theme Theme.Holo.Dialog are blue. I'd like to know how to change this to any other color. Orange in my case.

I can change text or background etc.. overriding the theme with a custom 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>

but I don't know which property manages the color of the lines.

I mean the blue lines that the theme has by default like the ones shown on this other question:

How to Android Holo Theme style dialog box buttons

like image 212
butelo Avatar asked Apr 07 '12 19:04

butelo


3 Answers

Just dug around in the source for you - unfortunately the Divider line in the dialog layouts is a view with a hard coded color background that doesn't reference any themes:

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

So if you want to change the color you'll have to layout your own, custom, dialog box. to make it easier, it wouldn't hurt to just copy from the android source base and customize it to your needs, but you might also get a lot more than you need.

like image 94
JRaymond Avatar answered Oct 24 '22 23:10

JRaymond


There is a library which does exactly what you need - easy styling of dialogs in Holo theme:

https://github.com/inmite/android-styled-dialogs

like image 35
David Vávra Avatar answered Oct 24 '22 22:10

David Vávra


one trick is using dialog with no title bar, hence android not draw the line, then adding title and the line yourself in dialog`s layout xml file! for example:

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

in manifest use:

    <activity
        android:name=".Activity.Mydialog"
        android:theme="@style/myDialogStyle" >
    </activity>

and in your Mydialog layout define title and line yourself with your desired color and style!

cheers!

like image 2
Navid Avatar answered Oct 25 '22 00:10

Navid