我正在使用具有自定义背景的按钮。
首先,我已将按钮图像添加到drawable文件夹中。 然后我在drawable中创建了一个名为large_button.xml的按钮布局:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/large_buttom_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/large_buttom_pressed"
android:state_focused="true" />
<item android:drawable="@drawable/large_buttom_default" />
</selector>
然后我使用活动布局中的按钮:
<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test button Text"
android:onClick="sendMessage"
android:background="@drawable/large_button" />
问题是,(除了按钮比我想要的高),按钮中的文字全部为大写:
我也想知道如何告诉它使用另一种字体(例如默认字体,或已经可用的字体,不一定是我必须在ttf中导入的字体)
我将在另一个问题中解决按钮大小问题,以便搜索其中一个问题的人不必阅读这两个问题并且可能会混淆。
答案 0 :(得分:1)
所以要修复大写使用:
people = {}
person_values = people.fetch(name, [])
person_values << item
people[name] = person_values
要更改您可以使用的字体:
android:textAllCaps="false"
包括的默认字体是:normal,serif,sans,monospace。
答案 1 :(得分:1)
从xml
更改字体的类型和样式<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textAllCaps="false"
android:typeface="monospace"/>
因此文本不会全部为大写
android:textAllCaps="false"
如果您想更改活动中的字体
Button btn = (TextView) findViewById(R.id.btn);
Typeface font = Typeface.createFromAsset(getAssets(), "Helv Neue 67 Med Cond.ttf");
btn.setTypeface(font);
从您的活动中,您可以使用此
private void overrideFonts(final Context context, final View v) {
try {
if (v instanceof ViewGroup) {
ViewGroup vg = (ViewGroup) v;
for (int i = 0; i < vg.getChildCount(); i++) {
View child = vg.getChildAt(i);
overrideFonts(context, child);
}
} else if (v instanceof Button ) {
((Button) v).setTypeface(Typeface.createFromAsset(context.getAssets(), "font.ttf"));
}
} catch (Exception e) {
}
}