Android apply different Text Selection Handles - android

I've created the bellow style to change the selection handles on an EditText.
<style name="AutoCompleteTextViewOrangeAutoComplete" parent="android:Widget.Holo.Light.AutoCompleteTextView">
<item name="android:dropDownSelector">#drawable/orangeautocomplete_list_selector_holo_light</item>
<item name="android:background">#drawable/orangeautocomplete_edit_text_holo_light</item>
<item name="android:textSelectHandle">#drawable/orangehandle_text_select_handle_middle</item>
<item name="android:textSelectHandleLeft">#drawable/orangehandle_text_select_handle_left</item>
<item name="android:textSelectHandleRight">#drawable/orangehandle_text_select_handle_right</item>
<item name="android:textColorHighlight">#99db4b39</item>
</style>
On my layouts, some of my TextViews can be selected so I want to apply the same selection handles but since I have many TextViewsI would like to apply the handles to all of my app.
On AndroidManifest I have this:
<activity
android:name=".Fragments"
android:exported="false"
android:label="#string/app_name"
android:theme="#style/myTheme">
And on Values-v14 my styles.xml is like this:
<resources>
<style name="myTheme" parent="#style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:textViewStyle">#style/test</item>
</style>
<style name="test" parent="android:Widget.Holo.Light.TextView">
<item name="android:textSelectHandle">#drawable/orangehandle_text_select_handle_middle</item>
<item name="android:textSelectHandleLeft">#drawable/orangehandle_text_select_handle_left</item>
<item name="android:textSelectHandleRight">#drawable/orangehandle_text_select_handle_right</item>
<item name="android:textColorHighlight">#99db4b39</item>
</style>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"/>
</resources>
Unfortunately this is not changing the default text selection handles.
Any idea how to make it work?

Related

Android: Title Bar Color don't change

I wanna change my Apps Titlebar color and tried it in this way:
Part of the manifest file:
<application
android:icon="#drawable/icon"
android:label="#string/app_name"
android:theme="#style/Theme.MyTitleBar" ></application>
The style block part of the file styles.xml:
<style name="Theme.MyTitleBar" parent="android:Theme">
<item name="android:colorBackground">#FFFFFF</item>
<item name="android:background">#FFFFFF</item>
<item name="android:textColor">#android:color/black</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">16sp</item>
</style>
But only the text color and attributes changes correct. Any guest what I did wrong?
EDIT: I added the part for the ActionBar (sorry I put only for Dialogs at first)
You can follow this, it will allow you to change moreover other attributes that just the title bar:
Just call your custom theme in the manifest file:
<application
android:icon="#drawable/icon"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
Then create these 2 styles in your styles.xml. The first one defines the theme, the second one, one of the styles to apply on the theme:
<style name="AppTheme" parent="#android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">#style/ActionBarStyle</item>
</style>
<style name="ActionBarStyle" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:colorBackground">#FFFFFF</item>
<item name="android:background">#FFFFFF</item>
<item name="android:textColor">#android:color/black</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">16sp</item>
</style>
NOTE: In this example, I customize the theme Holo Light as you can see with this: android:style/Widget.Holo.Light.ActionBar.
Add This style.xml File in your project according to your requirment...
<item name="android:actionBarStyle">#style/myActionBar</item>
</style>
<style name="myActionBar" parent="#android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:titleTextStyle">#style/myActionBar.titleTextStyle</item>
</style>
<style name="myActionBar.titleTextStyle" parent="#android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse">
<item name="android:textColor">#color/darkgrey</item>
</style>
<style name="myActionBar" parent="#android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">#e6ebc3</item>
</style>

Unable to apply my own designed styles for the TitleBar's background and text

I have the two styles defined in the xml code below; however, I defined them in the styles.xml but I don't know how to apply them as well as where to implement them? in the layout.xml, in the manifest.xml or in the java file?
<style name="Theme.MyAppTheme" parent="android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">#style/Theme.MyAppTheme.ActionBar</item>
</style>
<style name="Theme.MyAppTheme.ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#FF4444</item>
<item name="android:titleTextStyle">#style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:typeface">serif</item>
<item name="android:textColor">#color/DARKRED</item>
<item name="android:textSize">35sp</item>
</style>
There are different scope you can apply your style too. For example, in your manifest, in your application tag, there is a theme attribute. So you do can something like this:
<application
android:hardwareAccelerated="true"
android:label="#string/app_name"
android:theme="#style/Theme.MyAppTheme" >

Themes overriding each other?

In my styles.xml file I have a style to remove the title bar and other styles to change my tabwidget's font size:
<?xml version="1.0" encoding="utf-8"?>
<style name="RemoveTitleBar" parent="android:Theme">
<item name="android:style/Theme.Black.NoTitleBar.Fullscreen">true</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="CustomTheme" parent="android:style/Theme">
<item name="android:tabWidgetStyle">#style/CustomTabWidget</item>
</style>
<style name="CustomTabWidget" parent="android:style/Widget.TabWidget">
<item name="android:textAppearance">#style/CustomTabWidgetText</item>
</style>
<style name="CustomTabWidgetText" parent="android:style/TextAppearance.Widget.TabWidget">
<item name="android:textSize">12sp</item>
<item name="android:textStyle">bold</item>
</style>
In my AndroidManifest.xml file I set the RemoveTitleBar style to the application which works fine:
<application
android:icon="#drawable/ic_launcher_test_icon"
android:label="#string/app_name"
android:theme="#style/RemoveTitleBar"
....
However when I apply the CustomTheme style to my activity with tabs, I get the title bar back. But if I remove the line it works fine.
<activity android:name=".TabActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/CustomTheme"> </activity>
Am I going about this the wrong way or do I have to change something in my styles.xml file? Thanks for you time.
You are extending CustomTheme with "android:style/Theme":
<style name="CustomTheme" parent="android:style/Theme">
<item name="android:tabWidgetStyle">#style/CustomTabWidget</item>
</style>
and the titleBar is available in in this you aren't removing the titleBar, you will again need to remove the titleBar like this:
<style name="CustomTheme" parent="android:style/Theme">
<item name="android:tabWidgetStyle">#style/CustomTabWidget</item>
<item name="android:style/Theme.Black.NoTitleBar.Fullscreen">true</item>
</style>

Create custom titlebar in Android

I created a custom title bar for my application but I am having some problems implementing it. I want to change the color and the appearance for the text and title bar
The layout of the styles.xml is as below:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme">
<item name="android:tabWidgetStyle">#style/LightTabWidget</item>
</style>
<style name="MyWindowTitleBackground" parent="#android:style/WindowTitleBackground">
<item name="android:background">#android:drawable/title_bar</item>
</style>
<style name="MyWindowTitle" parent="#android:style/WindowTitle">
<item name="android:singleLine">true</item>
<item name="android:windowTitleSize">40dip</item>
<item name="android:textAppearance">#style/MyTextAppearance</item>
<item name="android:shadowColor">#BB000000</item>
<item name="android:shadowRadius">2.75</item>
</style>
<style name="MyTextAppearance" parent="#android:style/TextAppearance.WindowTitle">
<item name="android:textColor">#3A6629</item>
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="LightTabWidget" parent="#android:style/Widget.TabWidget">
<item name="android:textSize">20px</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">#FF5721</item>
</style>
</resources>
And I have added that theme in the manifest file as follows:
<application android:icon="#drawable/icon" android:label="#string/app_name" android:theme="#android:style/Theme.Light">
<activity android:name="LAFoodBankAboutUs" android:label="#string/app_name" android:theme="#style/MyTheme">
What do I have to do to show the custom title bar?
By now (after some years), the Toolbar is available. It features a lot of customization possibilities and is also available via the Support Library

How do I apply a style to all buttons of an Android application

I have a style applied to my whole application:
AndroidManifest.xml:
<application android:theme="#style/ApplicationStyle" android:icon="#drawable/icon" android:label="#string/app_name">
And in my styles.xml:
<style name="ApplicationStyle" parent="android:Theme">
<item name="android:button">#style/CKButton</item>
</style>
<style name="CKButton" parent="android:style/Widget.Button">
<item name="android:textSize">19sp</item>
<item name="android:layout_margin">0dip</item>
<item name="android:background">#ff0000</item>
</style>
But the style doesn't get applied.
I'm sorry if I just used the false name in the ApplicationStyle - Item, but I have no clue where to look for the object names and simply assumed, that android:button applies to all buttons.
For Android styles, you reference the preset attributes that Android has laid out in R.attr. In this case, it looks like you want to to reference android:buttonStyle. I think this would work:
<style name="ApplicationStyle" parent="android:Theme">
<item name="android:buttonStyle">#style/CKButton</item>
</style>
For Material components theme it would be like this:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">#color/colorPrimary</item>
<item name="colorPrimaryDark">#color/colorPrimaryDark</item>
<item name="colorAccent">#color/colorAccent</item>
<item name="materialButtonStyle">#style/AppTheme.Button</item>
</style>

Categories

Resources