It is possible to create a ToggleButton without text?
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 andmy_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~