我不想使用我的应用的默认字体。
我想使用我想要的字体。
因此,我将所需的字体复制到assets/fonts/
文件夹中,编码如下所示。
但是,会发生错误。
请帮我使用完整应用程序使用相同的字体。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout ll = new LinearLayout(this);
ll.setBackgroundResource(R.drawable.bg);
this.setContentView(ll);
TextView tv = (TextView) findViewById(R.id.app_name);
Typeface face = Typeface.createFromAsset(getAssets(),
"fonts/TAU_MADN.TTF");
tv.setTypeface(face);
更新:
我的xml TextView
代码;
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="app_name"
android:textStyle="bold" />
错误:
错误:错误:不允许字符串类型(在'id'处,值为'app_name')。
答案 0 :(得分:0)
请确保路径已正确发出,例如包含extension.TTF或.ttf {与font文件夹中的名称相同的名称}的区分大小写的内容,包括文件夹名称“FONTS”!。
答案 1 :(得分:0)
您的错误与将自定义字体作为资源加载无关。
在您的布局R.layout.activity_main
中,没有TextView
ID为R.id.app_name
,因此当您在代码中初始化TextView
时,将会抛出错误。
确保您的布局中有TextView
个TextView
。
如果您认为确实已经在布局中设置了android:id="@+id/app_name"
,请尝试清理项目。
修改强>
添加如下ID:
Typeface face = Typeface.createFromAsset(getAssets(),
"fonts/TAU_MADN.ttf"); // lowercased ".ttf" reference
还要使用小写的“.ttf”扩展名重命名您的字体,并且对它的引用都是相同的。
{{1}}
有关您的问题的详情,请参阅here。
答案 2 :(得分:0)
这可以帮到你:
更改 TextView 中的android:id
属性,如:
<TextView
android:id="@+id/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold" />
并在代码中更改此行:
Typeface face = Typeface.createFromAsset(getAssets(),
"fonts/TAU_MADN.ttf");
答案 3 :(得分:0)
Android仅允许整数类型ID
你提到错误的字符串类型ID
更改此行
android:id="app_name"
到
android:id="@+id/app_name"