i want to create a android default ToggleButton
like this:
but i want to create it without TEXT
I tryed with this code:
ToggleButton tb = new ToggleButton(map);
tb.setText(null);
tb.setTextOn(null);
tb.setTextOff(null);
But it is leaving a empty space in the top of the horizontal green bar.
I dont want that empty space, i only want the horizontal green bar.
How to achieve it?
thanks
A toggle button allows the user to change a setting between two states. You can add a basic toggle button to your layout with the ToggleButton object. Android 4.0 (API level 14) introduces another kind of toggle button called a switch that provides a slider control, which you can add with a Switch object.
In android, Toggle Button is a user interface control that is used to display ON (Checked) or OFF (Unchecked) states as a button with a light indicator. The ToggleButton is useful for the users to change the settings between two states either ON or OFF.
The empty space in the top is caused by the 2 Ninepatch (btn_toggle_off.9.png
and btn_toggle_on.9.png
) used in default toggleButton style.
To perfectly center the horizontal bar, you must create a new style for ToggleButton that will use two new ninepatch derived form original.
Edit: Method requiring minimal XML:
create your two ninepatches for your togglebutton, name it: my_btn_toggle
_on and my_btn_toggle_off
in drawable folder, create my_btn_toggle.xml
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/my_btn_toggle_off" />
<item android:state_checked="true" android:drawable="@drawable/my_btn_toggle_on" />
</selector>
in your code, add tb.setBackgroundResource(R.drawable.my_btn_toggle)
:
ToggleButton tb = new ToggleButton(map);
tb.setText(null);
tb.setTextOn(null);
tb.setTextOff(null);
tb.setBackgroundResource(R.drawable.my_btn_toggle)
Just set following things:
<ToggleButton android:id="@+id/tbtn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_check"
android:textOn=""
android:textOff=""
android:text="" />
And, the style xml, if you need...
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/bg_check_on" /> <!-- pressed -->
<item android:drawable="@drawable/bg_check_off" /> <!-- default/unchecked -->
</selector>
Hope it helps~
Using
<ToggleButton
...
android:textOff="@null"
android:textOn="@null"
android:textSize="0dp" />
will not only make the text go away, but also get rid of the empty space where it would otherwise be shown.
I thought so
android:textColor="@android:color/transparent"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With