- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在制作必须以“NASTALIQ.TTF”字体显示文本的 Android 应用程序。我将字体 ttf 文件放在项目的以下目录中:
C:\Users\Zeeshan\AndroidStudioProjects\NasirKazmiPehliBarish\app\build\intermediates\assets\fonts\NASTALIQ.TTF
C:\Users\Zeeshan\AndroidStudioProjects\NasirKazmiPehliBarish\app\build\generated\assets\fonts\NASTALIQ.TTF
我使用以下行来加载字体:
Typeface tf = Typeface.createFromAsset(this.getAssets(), "/fonts/NASTALIQ.TTF");
但它抛出找不到字体的异常。这是日志:
09-24 20:42:59.997 2380-2380/com.neatsoft.nasirkazmipehlibarish E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.neatsoft.nasirkazmipehlibarish, PID: 2380
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.neatsoft.nasirkazmipehlibarish/com.neatsoft.nasirkazmipehlibarish.Ghazals}: java.lang.RuntimeException: Font asset not found /fonts/NASTALIQ.TTF
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.RuntimeException: Font asset not found /fonts/NASTALIQ.TTF
at android.graphics.Typeface.createFromAsset(Typeface.java:206)
at com.neatsoft.nasirkazmipehlibarish.Ghazals.onCreate(Ghazals.java:81)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
以下是包含字体代码的我的 Ghazals.java:
package com.neatsoft.nasirkazmipehlibarish;
import android.content.Intent;
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import static android.R.attr.typeface;
public class Ghazals extends AppCompatActivity {
static int GHAZAL_POSITION=0;
TextView tvGhazals;
String ghazals[] = {"میں نے جب لکھنا سیکھا تھا\n" +
"پہلے تیرا نام لکھا تھا\n" +
"\n" +
"میں وہ صبرِ صمیم ہوں جس نے\n" +
"بار امانت سر پہ لیا تھا\n" +
"\n" +
"میں وہ اسمِ عظیم ہوں جس کو\n" +
"جن و ملک نے سجدہ کیا تھا\n" +
"\n" +
"تو نے کیوں مرا ہاتھ نہ پکڑا\n" +
"میں جب رستے سے بھٹکا تھا\n" +
"\n" +
"جو پایا ہے وہ تیرا ہے\n" +
"جو کھویا وہ بھی تیرا تھا\n" +
"\n" +
"تجھ بن ساری عمر گزاری\n" +
"لوگ کہیں گے تو میرا تھا\n" +
"\n" +
"پہلی بارش بھیجنے والے\n" +
"میں ترے درشن کا پیاسا تھا",
"تو جب میرے گھر آیا تھا\n" +
"میں اک سپنا دیکھ رہا تھا\n" +
"\n" +
"تیرے بالوں کی خوشبو سے\n" +
"سارا آنگن مہک رہا تھا\n" +
"\n" +
"چاند کی دھیمی دھیمی ضو میں\n" +
"سانوا مکھڑا لَو دیتا تھا\n" +
"\n" +
"تیری نیند بھی اُڑی اُڑی تھی\n" +
"میں بھی کچھ کچھ جاگ رہا تھا\n" +
"\n" +
"میرے ہاتھ بھی سلگ رہے تھے\n" +
"تیرا ماتھا بھی جلتا تھا\n" +
"\n" +
"دو روحوں کا پیاسا دل\n" +
"گرج گرج کر برس رہا تھا\n" +
"\n" +
"دو یادوں کا چڑھتا دریا\n" +
"ایک ہی ساگر میں گرتا تھا\n" +
"\n" +
"دل کی کہانی کہتے کہتے\n" +
"رات کا آنچل بھیگ چلا تھا\n" +
"\n" +
"رات گئے سویا تھا لیکن\n" +
"تجھ سے پہلے جاگ اُٹھا تھا"};
public void goToNextActivity(int positionOfGhazal){
GHAZAL_POSITION = positionOfGhazal;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ghazals);
tvGhazals = (TextView) findViewById(R.id.textView_ghazal);
tvGhazals.setText(ghazals[GHAZAL_POSITION]);
Typeface tf = Typeface.createFromAsset(this.getAssets(), "/fonts/NASTALIQ.TTF");
//tvGhazals.setTypeface(tf); */
}
}
最后,这是 startar MainActivity:
package com.neatsoft.nasirkazmipehlibarish;
import android.content.Intent;
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private static ListView listView;
private static String[] list = new String[] {
"میں نے جب لکھنا سیکھا تھا",
"تو جب میرے گھر آیا تھا",
"میں جب تیرے گھر پہنچا تھا",
"شام کا شیشہ کانپ رہا تھا",
"دن کا پھول ابھی جاگا تھا",
"پتھر کا شہر وہ بھی کیا تھا",
"پچھلے پہر کا سناٹا تھا",
"گرد نے خیمہ تھام لیا تھا",
"تُو جب دوبارہ آیا تھا",
"تجھ بن گھر کتنا سونا تھا",
"دھوپ تھی اور بادل چھایا تھا",
"دم ہونٹوں پر آکے رکا تھا",
"چاند ابھی تھک کر سویا تھا",
"نئے دیس کا رنگ نیا تھا",
"چھوٹی رات سفر لمبا تھا",
"تھوڑی دیر کو جی بہلا تھا",
"میں تیرے شہر سے پھر گزرا تھا",
"میں اس شہر میں کیوں آیا تھا",
"پل پل کانٹا سا چبھتا تھا",
"روتے روتے کون ہنسا تھا",
"پون ہری جنگل بھی ہرا تھا",
"تنہائی کا دکھ گہرا تھا",
"تیرا قصور نہیں میرا تھا"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView();
}
public void ListView(){
listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.titles_list, list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String value = (String) listView.getItemAtPosition(position);
Toast.makeText(MainActivity.this, position + "", Toast.LENGTH_LONG).show();
Ghazals ghazal = new Ghazals();
ghazal.goToNextActivity(position);
Intent intent = new Intent("com.neatsoft.nasirkazmipehlibarish.Ghazals");
startActivity(intent);
}
}
);
}
}
可能是我提供了错误的路径,它没有找到目标字体。我尝试了很多组合,但它们没有用,例如:
Typeface tf = Typeface.createFromAsset(this.getAssets(), "/fonts/NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "/NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "assets/fonts/NASTALIQ.TTF");
最佳答案
将你的字体文件从 main/assets/fonts/NASTALIQ.TTF
如果任何文件夹不存在,请创建它。
关于java - TypeFace.createFromAsset 找不到字体错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52483196/
你知道更好的写法吗 font = font ? font : defaultFont; 我所知道的是: if(!font) { font = defaultFont } 我知道这是一个小工具问
我正在编写代码,但无法编译,即使类(字体)已通过 import javafx.scene.text.*; 导入我知道这个方法font包含在字体中。 这是我的代码: package helloworld
我已经构建了一个按钮,但在格式设置(即平方、内联文本等)方面遇到了问题 我目前的问题是:正文分为2部分- 上线正常-下一行是较大的字体大小 我的动画 react 正确,但文本应该在箭头的顶线和底线内。
好的,所以我想在网页上使用固定系统作为字体。我可以使用 Cufon,但我希望人们能够在鼠标悬停时选择文本并复制它。 有人有什么吗? 最佳答案 我使用 fontsquirrel 的 @font-face
我找到了 iOS 4.2 可用字体列表(链接 here ),但该列表与早期版本的 SDK 略有不同(链接 here )。 我可以很好地更改代码中的字体,但如果我使用 iOS 4.2 列表中可用的字体,
我正在尝试更改 TableView 标题上的字体颜色,其中显示“加利福尼亚/纽约”。我该怎么做? 在黑色背景上,文本需要是白色的,但无法弄清楚这一点。 谢谢 最佳答案 如果您尝试更改标题颜色,可以使用
假设我想使用 java.awt.Graphics.drawString(String str, int x, int y)在某些特定坐标处绘制字符串的方法,例如 (300, 300)。然而drawSt
我想使用Puppeteer从HTML字符串生成图像。现在我有这样的事情: const html = _.template(` Hello {{ test }}!
我正在创建一个游戏。我有一些带有文本的用户界面。最近我们想添加日语版本,但我遇到字体问题。我使用 stb_freetype 来光栅化字体,并且我支持 Unicode,所以这应该不是问题。但大多数字体似
我可以在一个文本区域中使用不同的前景色吗?不同的字体? 我想添加类似“hh:mm:ss 昵称:消息”的内容,时间为灰色,名称 - 蓝色,消息 - 黑色。 最佳答案 我在评论中犯了一个错误:你想要的是
每次我更改字体时,它都会返回到默认大小,即 12,即使我之前使用“ Jade 野”菜单更改它,它每次也只会返回到 12,我的猜测是这样我使用deriveFont()更改大小,但现在没有其他方法可以更改
我的电脑上安装了一种名为“BMW1”的自定义字体。我试图循环遍历此字体中的所有条目并将它们显示在 JTextArea 中。 我有以下代码: JTextArea displayArea = new JT
我尝试通过 Squirrel 理解生成的代码,这里是输出: @font-face { font-family: 'someFont'; src: url('someFont.eot')
我知道有多种方法可以通过 JS/DHTML 动态更改网页的字体属性,或者用 Flash 呈现的字体(使用 sIFR 或 Cufon)替换文本。但是,我找不到任何根据用户选择动态更改网页上使用的字体的好
使用具有非标准样式名称(例如“Inline”或“Outline”)而不是标准样式(例如“Bold”和“Italic”)的字体系列,如何使用 css 选择字体的不同样式? 设置 font-family
我对 html/css 有点陌生,我正在制作我的第一个网站,但我只是想不通一些东西。 首先,我在 dreaweaver 中工作...在 dreaweaver 中,一切看起来都不错,但是当我预览时,我缺
有没有办法在 Allegro5 中只绘制(或显示)图像/字体的一部分? 例如,如果我有一个正方形 A 和一个图像 B,我只想绘制/显示 B 中与 A(在本例中为 C)重叠的部分,我该怎么做? 插图:
所以,我有一个正在生成的报告 html 文件,其中有需要白色文本/字体的黑框。在通用 html 显示中一切都很好,但是当我尝试打印页面时,ctrl + p 或自定义打印功能,文本/字体保持为标准颜色,
我正在尝试制作一个非常适合 LaTeX 文档的 matlab 图形。一个已知的问题是 XTickLabel 和 YTickLabels 不使用 LaTeX 解释器渲染,导致图形不好看。 (注意:我意识
我需要在一个公共(public)位置使用默认颜色和字体,以便在桌面应用程序的多个窗口窗体中使用它。 这方面的最佳做法是什么? 我正在考虑使用应用程序设置在那里定义它们,但我想确保这是推荐的方法或者是否
我是一名优秀的程序员,十分优秀!