当前位置: 首页 > 面试题库 >

检查Android中Typeface对象的族

滑畅
2023-03-14
问题内容

是否可以检查Android API
8中Typeface对象使用的是哪个家族?

我正在像这样的Paint对象上创建字体

//Simplified code, the user actually selects the family and style from a list
Paint paint = new Paint();
paint.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD));

我希望以后能像这样检查家人

Typeface tf= paint.getTypeface();

if (tf.equals(Typeface.DEFAULT) || tf.equals(Typeface.DEFAULT_BOLD)) {
    //do something
} else if (...) {
    //do something else
}

这是行不通的,因为它们不是同一对象,我也尝试过,tf == value但结果相同。Typeface对象似乎没有提供任何有用的帮助进行家族检测的方法,是否有解决方法?我只需要检测基本的Android字体(SERIF,SANS-
SERIF,DEFAULT,MONOSPACE等)


问题答案:

不容易。如native_instance
int在源代码中所见,该家族的密钥是a
,它是程序包私有的,并且不直接公开。

获取该信息的方式多种多样,可能无法或可能不适用于所有设备以及所有过去/现在/未来的Android版本。

也许您可以围绕Typeface该信息创建自己的包装对象。



 类似资料:
  • Example Module # example.py # This comment appears first # and spans 2 lines. # This comment does not show up in the output of getcomments(). """Sample file to serve as the basis for inspect example

  • 超文本传输协议GET方法的响应如下所示: 在前端,我想检查属性是否为空。我尝试过这种方法,但不起作用

  • 有没有一种方法可以在freemarker模板中获取对象的类名?

  • 问题内容: 有没有一种快速的方法来检查对象是jQuery对象还是本机JavaScript对象? 例: 显然,上面的代码有效,但并不安全。您可能会向对象添加选择器键并获得相同的结果。有没有更好的方法来确保该对象实际上是jQuery对象? 符合 问题答案: 您可以使用运算符: 说明 :该函数(又名)被实现为构造函数。构造函数将以前缀调用。 调用时,内部jQuery将此转换为1。JavaScript继续

  • 问题内容: 如何检查值是否是JavaScript中的Object? 问题答案: 更新 : 这个答案是不完整的,并且会产生误导性的结果 。例如,在JavaScript中也被视为类型,更不用说其他几种极端情况了。请遵循以下建议,然后转到其他 原始答案 : 尝试使用和/或。 编辑:这个答案给出了一个如何检查变量属性的想法,但是它不是一个防弹配方(毕竟根本没有配方!)来检查它是否是一个对象,而不是对象。由

  • 嗨,伙计们,我有一个这样的东西 我可以检查tmp吗?如果所有数据都不为空,我会做些什么?,我知道使用if的简单方法,但如果使用if运算符,数据太多了?