从Android中的XML文件访问资产文件夹下的字体
我正在尝试进行应用程序范围内的字体更改并创建一个样式文件来执行此操作。在此文件(如下)中,我只想更改 Android 的 TextAppearance 样式的字体值。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="NightRiderFont" parent="@android:style/TextAppearance">
<item name="android:typeface"> /***help need here***/ </item>
</style>
</resources>
但是字体位于“assets/fonts/”中。我如何访问此字体,以便我可以使用该样式作为主题来摆脱以编程方式手动更改所有 TextView 的情况。
摘要:如何访问 XML 中的“资产文件夹中的文件”?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(14)
您可以将 .ttf 文件放在字体文件夹中,而不是资产文件夹中。
要在运行 Android 4.1(API 级别 16)及更高版本的设备上使用 XML 功能中的字体支持,请使用支持库 26+。
右键res文件夹,新建-> Android资源目录->选择字体->好的。
将“myfont.ttf”文件放入新创建的字体文件夹中。
在 res/values/styles.xml 上
添加,
在布局文件上添加 android:textAppearance="@style/customfontstyle",
参考: https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml
Instead of assets folder, you can put the .ttf file on fonts folder.
To use fonts support in XML feature on devices running Android 4.1 (API level 16) and higher, use the Support Library 26+.
Right click res folder, new -> Android resource directory-> select font -> Ok.
put your "myfont.ttf" file in newly created font folder.
On res/values/styles.xml
add,
On layout file add android:textAppearance="@style/customfontstyle",
Refer : https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml
//在代码中访问字体文件,
//在assets文件夹中->fonts(文件夹名称)->arial.ttf(字体文件名)
//accessing font file in code,
//in assets folder->fonts(foldername)->arial.ttf(font file name)
您可以使用此库: https://github.com/InflationX/Calligraphy
您只需添加您想要在布局上使用的字体。
像这样:
You can use this library: https://github.com/InflationX/Calligraphy
You only have to add the font you want to use on your layout.
Like this:
1.首先我们可以添加assets文件夹>然后你的应用程序中的 font styles.ttfs
2. 在字符串中编写字体的访问代码,如下所示:
3. 访问一些布局 xml 文件文本视图代码,如下所示:
4. 添加字体大小的尺寸:
5. 添加颜色中的字体颜色:
6. 然后应用更改,这很容易处理更改孔应用程序。
快乐编码保持微笑..
1.Fisrt we can add assets folder> in that your font styles.ttfs in your app then
2.write access code for fonts in strings like :
3.Accessing some layout xml file textview code like this below:
4.Add dimensions for font size :
5.Add font color in colors :
6.Then apply changes it is easy process to change hole app.
Happy coding keep smile..
您可以从资产文件夹到 xml 文件访问字体文件。
android:fontFamily="fonts/roboto_regular.ttf"
fonts 是 asset 文件夹中的子文件夹。
You can access your font file from assets folder to xml file.
android:fontFamily="fonts/roboto_regular.ttf"
fonts is the sub folder in assets folder.
根据我的研究,没有办法将外部字体添加到 xml 文件中。 xml 中只有 3 种默认字体可用,
但您可以使用此代码在 java 中使用。
更新:
现在我找到了一种方法来实现这一点,方法是创建一个扩展 TextView 的自定义类并在 xml 文件中使用它。
在 xml 中,
不要忘记在 xml 的根目录中添加架构
,并在
values
目录中创建一个attrs.xml
文件,该文件保存我们的自定义属性:更新:
应用程序类引用该字体对象将如下所示
In my research, there is no way to add external font to the xml file. Only the 3 default font is available in xml
But you can use in java using this code.
Update:
Now I find a way to do this by creating a custom class extending the TextView and use that in the xml file.
and in xml
dont forget to add the schema in root of your xml
And create an
attrs.xml
file insidevalues
directory, which is holding our custom attribues:Update:
Application class will look like this
编辑2:
最后,xml支持字体(也通过支持库向后兼容):https://developer.android.com/preview/features/fonts-in-xml.html
编辑:
我现在使用 书法 库。这是自定义字体最简单的方法。
你能做什么:
TextView
中的自定义字体我找到了另一种方法来做到这一点。
您必须使用此 TextView >tutorial
这并不困难,之后您可以使用带有您自己的字体的
TextView
。我不知道是否还有人看这个,但我想这可能会有所帮助。
Edit 2:
Finally fonts are supported by xml (also backwards compatible via support library): https://developer.android.com/preview/features/fonts-in-xml.html
Edit:
I now use the Calligraphy library . It is the easiest way for custom fonts.
What can you do:
TextView
I found another way to do this.
You have to make your own
TextView
using this tutorialIt is not that difficult and after this you can just use that
TextView
with your own font.I don't know if anybody still watches this, but I thought it might help.
如果您使用单一字体,请使用此功能。
Uses this function if you are using single font.
Soorya 是对的,但如果您必须在许多 textView 上放置相同的字体,我建议您将该代码放入返回所需 Typeface 的静态方法中。它将减少代码中的行数。或者甚至更好地创建一个扩展 Application 的类并创建一个返回 Typeface 的 GET 方法。该方法可以从应用程序内的任何 Activity 访问(无需使用静态变量或静态方法)。
Soorya is right, but if you have to put the same font on many textViews, I recommend you to put that code inside a static method that return the Typeface wanted. It will reduce lines in your code. Or even better create a class that extends Application and make a GET method that return the Typeface. That method will be reachable from any Activity inside your application (without the need of using static variables or static methods).
在不需要以编程方式设置自定义字体的帮助下检查一下。
https://stackoverflow.com/a/27588966/4331353
Check this out with the help of this don't need to set custom font programmatically.
https://stackoverflow.com/a/27588966/4331353
字体更改是 Android 中非常基本的功能,每个应用程序都需要它。因此每个人都只想在应用程序中更改一次,以减少我们的开发时间,所以我建议您查看此链接
FountChanger.class。
fount change is very basic functionality in android which is mostly needed to each and every application.so every one want to change only once in application that reduce our development time so i would suggest you to see this link
FountChanger.class.
您刚刚进行了公共调用并附加了这样的方法,
您可以使用任何方法 TextView 设置字体系列。
在您刚刚通过传递两个参数调用任何地方的方法后,进行了 FontList 调用。
You Have just make Public calls And attached Method like this
have you use any where method TextView set font-family.
made FontList calss after you have just call methods any where with pass two parameter.
我采用了 droid kids 的答案,并使其适用于任何字体,只需将字体文件名直接键入 XML:
layout.xml
Fonts.java
values/attrs .xml
TextViewWithFont.java
I took droid kid's answer and made it work with ANY font, just by typing the font filename directly into the XML:
layout.xml
Fonts.java
values/attrs.xml
TextViewWithFont.java
希望您能充分利用:-
hope use full to you:-