Размер шрифта кнопки Android
Я пытаюсь создать пользовательскую кнопку в android с помощью этого учебника - http://www.gersic.com/blog.php?id=56
Он работает хорошо, но он не говорит, как изменить размер шрифта или вес. Любые идеи?
Здесь был еще один вопрос, и единственным ответом было использование html-стиля, но вы не можете изменить размер шрифта в html без использования css (или устаревшего тега шрифта). Должен быть лучший способ установить размер пикселя шрифта, используемого на кнопках?
Ответы
Ответ 1
Вы определяете эти атрибуты в xml, как и вы, например:
<Button android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next"
android:background="@drawable/mybutton_background"
android:textSize="10sp" /> <!-- Use SP(Scale Independent Pixel) -->
Вы можете найти разрешенные атрибуты в api.
Или, если вы хотите, чтобы это применимо ко всем кнопкам в приложении, создайте стиль. См. Документацию Стили и темы.
Ответ 2
Button butt= new Button(_context);
butt.setTextAppearance(_context, R.style.ButtonFontStyle);
и в res/values /style.xml
<resources>
<style name="ButtonFontStyle">
<item name="android:textSize">12sp</item>
</style>
</resources>
Ответ 3
Программный:
Button bt = new Button(this);
bt.setTextSize(12);
В xml:
<Button
android:textSize="10sp"
/>
Ответ 4
Я попытался поместить размер шрифта в styles.xml, но когда я пошел использовать его, он разрешил только ресурсы из папки dimen, поэтому поставил его там, не знаю, что это правильно.
<Button
android:layout_weight="1"
android:id="@+id/three_btn"
android:layout_height="match_parent"
android:layout_width="0dp"
android:onClick="onButtonClick"
android:textColor="#EEEEEE"
android:textStyle="bold"
android:textSize="@dimen/buttonFontSize"
android:text="3"/>
Ответ 5
Другой программный подход;
final Button btn = (Button) findViewById(R.id.btnSize);
final float[] size = {12};
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
size[0] +=2;
btn.setTextSize(size[0] +2);
}
});
Каждый раз, когда вы нажимаете кнопку, текст кнопки изменяется (размер + 2px). Вы можете добавить еще одну кнопку и изменить размер -2px тоже. Если вы хотите сохранить размер для других открытий, вы можете использовать интерфейс Общие предпочтения.
Ответ 6
<resource>
<style name="button">
<item name="android:textSize">15dp</item>
</style>
<resource>
Ответ 7
Другой подход:
сначала объявляя int с размером шрифта по умолчанию
int txtSize = 16;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.setTextSize(txtSize++);
}
});
Ответ 8
В файле XML размер шрифта текста ant, включая кнопку, textView, editText и другие, можно изменить, добавив
андроид: TextSize = "10sp"