Intereting Posts

Android, как сделать текст кнопки полужирным при нажатии или фокусировке

Я хочу изменить текст внутри кнопки, чтобы сделать полужирным, когда кнопка подсвечивается или нажимается. В настоящее время я использую xml-файл для определения кнопки и использования XML для изменения того, как он выглядит при нажатии, но я хотел бы сделать это без использования изображения.

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/reset_hover" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/reset_hover" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/reset_hover" /> <item android:drawable="@drawable/reset" /> </selector> 

Я попытался использовать что-то вроде следующего, но он, кажется, никогда не вызван.

  final Button btn_reset = (Button) findViewById(R.id.btn_reset); btn_reset.setOnClickListener(this); btn_reset.setOn(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus){btn_reset.setTypeface(null, Typeface.BOLD);} else{btn_reset.setTypeface(null, Typeface.NORMAL);} } }); 

Solutions Collecting From Web of "Android, как сделать текст кнопки полужирным при нажатии или фокусировке"

Вы можете создать свой собственный style.xml, в котором вы определяете стиль текста. В вашем селекторе вы можете ссылаться на стиль. style.xml

 <style name="myStyle"> <item name="android:textSize">9px</item> <item name="android:gravity">center_horizontal</item> <item name="android:textColor">#fff</item> <item name="android:textStyle">bold</item> </style> 

И в вашем селекторе

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" style="@style/myStyle" /> </selector> 

Вы можете попробовать поставить жирный код внутри события click для кнопки:

 final Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Set bold on click button.setTypeface(null, Typeface.BOLD); } });