文本(字体)在旧版 api 上看起来褪色

2024-04-02

我正在使用自定义字体,它在较新的 Android 版本上完美显示(在 API 17(Asus 选项卡)、18(Dell 选项卡)、19(Nex4)- 设备上测试)。然而,相同的字体在旧版本 - API 8(SE X10i)、10(LG P500H) 上看起来褪色(可能扭曲?)。

这是一个比较,以防我的解释没有意义:

On nex4:

On x10i:

我正在使用带有 Typeface.BOLD 的自定义字体:

tvTitle.setTypeface(titleAndBodyFont, Typeface.BOLD);

和正文(“看起来*”部分):

tvBody.setTypeface(titleAndBodyFont);

标题的 XML 声明:

<TextView
    android:id="@+id/tvTitle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/margin_title_side"
    android:layout_marginRight="@dimen/margin_title_side"
    android:layout_marginTop="@dimen/margin_title_top"
    android:ellipsize="end"
    android:maxLines="1"
    android:textColor="@color/constant_color"
    android:textSize="@dimen/text_size_title" />

tvBody以类似的方式声明。

这是一个已知的错误?如果是这样,有人可以帮我找到错误报告吗?这将有助于了解这个问题是在哪个版本中修复的。如果没有,我将不胜感激您提供解决方案。

感谢大家。


我总是使用两种字体,一种是普通字体,一种是粗体字体。因此,当您需要加粗时,只需更改字体即可。从来没有遇到过问题,您还可以创建自定义 textviewplus。

像这样的东西:

/res/values/attrs.xml

<resources>   
<attr name="fontFamily" format="enum">
    <enum name="helvetica" value="0"/>
    <enum name="helvetica_bold" value="1"/>
</attr>

你的TextViewPlus:

public class TextViewPlus extends TextView{

private static final String TAG = "TextViewPlus";

public TextViewPlus(Context context) {
    super(context);
}

public TextViewPlus(Context context, AttributeSet attrs) {
    super(context, attrs);
    setCustomFont(context, attrs);
}

public TextViewPlus(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setCustomFont(context, attrs);
}

private void setCustomFont(Context ctx, AttributeSet attrs) {
    TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.TextViewPlus);
    int customFont = a.getInt(R.styleable.TextViewPlus_fontFamily, -1);
    setCustomFont(ctx, customFont);
    a.recycle();
}

public boolean setCustomFont(Context ctx, int font) {
    Typeface tf = null;
    try {
    tf = Typefaces.get(ctx, font);  
    } catch (Exception e) {
        Log.e(TAG, "Could not get typeface: "+e.getMessage());
        return false;
    }

    setTypeface(tf);  
    return true;
}

public boolean setCustomFont(Context ctx, String asset) {
    Typeface tf = null;
    try {
    tf = Typefaces.get(ctx, asset);  
    } catch (Exception e) {
        Log.e(TAG, "Could not get typeface: "+e.getMessage());
        return false;
    }

    setTypeface(tf);
    return true;
}

}

如何使用:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.myapp"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
        <com.myapp.viewhelpers.TextViewPlus 
        app:fontFamily="helvetica"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:fontFamily="helvetica"
        android:text="helo world"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文本(字体)在旧版 api 上看起来褪色 的相关文章

随机推荐

  • 如何从 table1 中选择前 500 行并将它们插入到 table2 中?

    我定义了完全相同的 2 个表 t2 和 t1 t2 有 1000 行 t1 完全是空的 如何从 t2 中选择前 500 行并将它们插入到 t1 中 我将使用 emptyTable 和 populatedTable 因为问题很混乱 重要的 T
  • Laravel 视图缓存如何工作?

    根据 Laravel 的文档 https laravel com docs 5 3 blade introduction https laravel com docs 5 3 blade introduction 视图被编译成纯 PHP 代
  • MPMoviePlayerController 拍摄屏幕截图但仅显示黑屏

    我在播放 MPMoviePlayerController 时截取屏幕截图 完美保存屏幕截图 但图像只有黑色 我使用下面的代码 UIGraphicsBeginImageContext self moviePlayerController vi
  • 使用闪亮的 ggplot 地图获取正确的点击坐标

    我启动了一个带有 ggplot 世界地图的闪亮应用程序 我想获取绘图上点击的坐标 以便用户可以对地图进行操作 但坐标很奇怪 要么NULL或非常小的东西 重复点击似乎只会改变一个坐标 ui R library shiny Define UI
  • Java - 更改 JLabel

    我有一个名为 Keys java 的按钮类 它将按钮面板返回到名为 Control java 的类 我在 Control java 中有一个 JLabel 但我想做的是在按下按钮时更改 JLabel 你会怎样做呢 我尝试在 Keys jav
  • 是否可以在不安装VS的情况下运行CodedUI测试?如何?

    我想在测试机上运行我的编码 UI 测试 但我希望我可以避免在我的测试机上安装 VS2012 有什么办法可以做到吗 根据this http blogs microsoft co il shair 2015 04 08 automation r
  • 如何添加已经存在的db字段中的数据

    我正在尝试添加数据main storage表 但是当我保存记录时它显示错误 failed unsupported operand type s for DeferredAttribute and int In Main Storage pr
  • 查找将用户带到我的网站的引荐网址

    复制 查找上一页 URL https stackoverflow com questions 772780 finding previous page url 如何在 ASP NET 中找到将用户带到我的网站的引荐 URL 也可以看看 如何
  • 如何更快地解决欧拉项目#21?

    原始问题 令 d n 定义为 n 的真因数之和 小于 n 的数能被 n 整除 如果 d a b 且 d b a 其中 a b 则 a 和 b 是友好对 并且 a 和 b 中的每一个称为友好数 例如 220的真因数是1 2 4 5 10 11
  • iphone uipickerview:图像和文本

    是否可以在文本旁边添加图像 如图标 UIPickerView 我看到的例子UIPickerViews有两列 一列有图像 另一列有文本 这不是我需要的 我需要一个包含文本和图像的列 Thanks 您需要为选择器的每一行创建自己的视图 如果只是
  • 将 python 模块添加到 AzureML 工作区

    我最近一直致力于将机器学习模型部署为 Web 服务 我使用 Azure 机器学习工作室创建自己的工作区 ID 和授权令牌 然后 我训练了 LogisticRegressionCV 模型sklearn 线性模型在我的机器本地 使用 pytho
  • 地理距离 MySQL

    要搜索距给定位置最近的位置 请按距离排序 我应该使用浮动还是点 我应该预先计算 cos sin sqrt 的值吗http www movable type co uk scripts latlong db html http www mov
  • 如何获取UIBarButtonItem中心位置

    我正在做一些自定义视图控制器转换 我希望我的转换从按下的按钮的中心开始 For UIButton我可以 myCustomTransition startingPoint buttonPressed center 但如果我想使用UIBarBu
  • 性别表标准化是否太过分了?

    我不是数据库专家 但我正在尝试清理另一个数据库 所以我的问题是 性别表正常化会不会太过分了 User table userid int pk genderid char 1 fk etc gender table genderid char
  • 在jframe中创建java的正方形,矩形,三角形[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个 Java 问题 据我了解 无法在 Java 中绘制几何图形 代码和以下内容您可以帮助我吗 这是代码 public class
  • Primefaces 在 onComplete/onClick 上运行 java 脚本

    我有一个 p command 按钮 如下所示
  • 在 Javascript 中通过 JSON 获取单个视频(而非 feed)的 Youtube 信息

    所以我试图通过 JSON 格式从单个 YouTube 视频中获取信息 比如标题描述类别 等等除了评论之外我能得到的任何东西 我正在尝试用 JavaScript 来做到这一点 我注意到下面的链接 但他们的所有示例都是如何从提要中获取视频信息
  • Android 8 通知设置声音不起作用

    我有以下代码 但每次我只听到默认的 android 声音 create channel NotificationChannel channel new NotificationChannel ANDROID CHANNEL ID ANDRO
  • 如何异步加载场景以便获得加载屏幕?

    我的场景加载可能需要一段时间 并且我希望能够显示加载动画 但是 一切都锁定了 有没有办法异步加载下一个场景并在准备好时获取回调 您可以使用以下命令安排并发执行块异步调度 https developer apple com library m
  • 文本(字体)在旧版 api 上看起来褪色

    我正在使用自定义字体 它在较新的 Android 版本上完美显示 在 API 17 Asus 选项卡 18 Dell 选项卡 19 Nex4 设备上测试 然而 相同的字体在旧版本 API 8 SE X10i 10 LG P500H 上看起来