计时码表字体在android中不变

时间:2019-11-25 20:08:11

标签: android xml android-layout chronometer

我想在android中更改天文钟的字体。我将默认字体设置为自定义字体。字体似乎适用于除天文钟以外的所有位置。我也尝试设置android:fontFamily="@font/myfont",但是没有用。虽然该字体似乎是在预览窗口中应用的,但是当我在设备上运行我的应用程序时,字体并没有改变。

有什么办法克服它吗?

这是我的代码:

<Chronometer
            android:fontFamily="@font/linotte_semibold"
            android:id="@+id/audio_player_chronometer"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_below="@+id/frame_layout"
            android:textColor="@color/white"
            android:layout_margin="5dp"
            />

3 个答案:

答案 0 :(得分:2)

您可以从Google Material下载字体

  1. 转到布局编辑器
  2. 选择您的view并在右侧查看All Attributes,然后找到fontFamily

fontFamily Attribute with default font

  1. 现在单击down arrow,它将打开一个用于选择字体的窗口

Resources of Google Fonts

  1. 找到所需的字体,您也可以搜索并单击ok

  2. 您的Chronometer的外观会不同

Preview of changed font

这是代码

<Chronometer
    android:id="@+id/chronometer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:fontFamily="@font/allan_bold"
    android:textColor="@color/colorAccent"
    android:textSize="30sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

如果字体没有更改,请在您的Activity.class

中使用它
Chronometer chronometer = findViewById(R.id.chronometer);

chronometer.setTypeface(ResourcesCompat.getFont(this, R.font.allan_bold));
//replace allan_bold with your desired font 

编辑1 这是设备中的输出 Device output

希望这会有所帮助!

答案 1 :(得分:1)

我只是按照此步骤将字体添加到Android https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html

  1. 将.ttf / .otf文件复制到“ res / font”文件夹中
  2. 生成具有样式和粗细详细信​​息的字体资源文件。
  3. 将新字体设置为android:fontFamily="@font/sample_font"

检查下面的示例代码,比较是否添加字体

<!--With Font-->
<Chronometer
    android:id="@+id/chronometer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/framelayout"
    android:layout_margin="5dp"
    android:fontFamily="@font/sample_font"
    android:textColor="@android:color/holo_blue_dark"
    android:textSize="30sp"
    app:layout_constraintBottom_toTopOf="@+id/textView"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.502"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/audio_player_chronometer"
    app:layout_constraintVertical_bias="0.528" />

<!--Without Font-->
<Chronometer
    android:id="@+id/audio_player_chronometer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/framelayout"
    android:layout_margin="5dp"
    android:textSize="30sp"
    android:textColor="@android:color/holo_blue_dark"
    app:layout_constraintBottom_toTopOf="@+id/textView"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/framelayout" />

<!--sample text-->
<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:fontFamily="@font/sample_font"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

屏幕截图enter image description here

答案 2 :(得分:0)

您可以使用以下命令在天文钟上更改字体样式和字体大小

  

XML

android:typeface="serif"
android:textSize="120dp"

xml中,您可以设置android的默认字体。

  

JAVA

Typeface font = Typeface.createFromAsset(getAssets(), "fonts/linotte_semibold.ttf");

        focus = (Chronometer) findViewById(R.id.chronometer1);
        focus.setTypeface(font, Typeface.NORMAL);
        focus.setTextSize(120);

重点是天文钟。

  

用于自定义字体

将您的 .ttf 文件放入资产文件夹。

android studio 中,您必须在 src / main / assets /

下创建资产文件夹