Android应用自定义字体在实体设备上不显示的问题求助
三星Galaxy Note 3实体设备自定义字体不显示问题
我试过多种方法:布局里设置字体、创建Typeface动态设置、清理重建项目。字体在编辑器和模拟器里都正常显示,但在三星Galaxy Note 3实体机上就是不出来。
相关Java代码
package com.example.benkyoblobandroid; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.Group; import android.content.Intent; import android.graphics.Typeface; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; public class BlobView extends AppCompatActivity { ImageButton pet; Group infoGroup; ImageButton studyTimeButton; TextView HPLabel; TextView EXPLabel; TextView EXP; TextView lvl; Typeface pixelFont; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); HPLabel = (TextView) findViewById(R.id.HP); EXPLabel = (TextView) findViewById(R.id.EXPLabel); EXP = (TextView) findViewById(R.id.EXP); lvl = (TextView) findViewById(R.id.lvl); pixelFont = Typeface.createFromAsset(getAssets(), "font/fff_forward_regular"); HPLabel.setTypeface(pixelFont); EXPLabel.setTypeface(pixelFont); EXP.setTypeface(pixelFont); lvl.setTypeface(pixelFont); pet = (ImageButton) findViewById(R.id.pet); infoGroup = (Group) findViewById(R.id.infoGroup); pet.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { infoGroup.setVisibility(infoGroup.getVisibility() == View.GONE ? View.VISIBLE : View.GONE); } }); studyTimeButton = (ImageButton) findViewById(R.id.studyTimeButton); studyTimeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switchActivity(StudyTimeView.class); } }); } void switchActivity(Class activity) { Intent activityIntent = new Intent(this, activity); startActivity(activityIntent); } }
布局XML代码
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:custom="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".BlobView"> <ImageView android:id="@+id/background" android:layout_width="fill_parent" android:layout_height="fill_parent" android:adjustViewBounds="true" android:scaleType="fitXY" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintDimensionRatio="1:2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/blob_room" /> <ImageButton android:id="@+id/pet" android:layout_width="0dp" android:layout_height="0dp" android:background="@null" android:contentDescription="Pet" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/guideline2" app:srcCompat="@drawable/slimepet_pink" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/guideline2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.40" /> <ImageView android:id="@+id/info" android:layout_width="0dp" android:layout_height="0dp" android:layout_marginTop="147dp" android:adjustViewBounds="true" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="2:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/background" app:srcCompat="@drawable/flashcard" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/guideline4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.20" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/guideline3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.50" /> <androidx.constraintlayout.widget.Group android:id="@+id/infoGroup" android:layout_width="54dp" android:layout_height="7dp" android:visibility="visible" app:constraint_referenced_ids="info,infoText,EXPStar,lvl" tools:layout_editor_absoluteX="185dp" tools:layout_editor_absoluteY="246dp" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/leftInfoGuideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_percent="0.05" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/topInfoGuideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.23" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/bottomInfoGuideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.43" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/rightInfoGuideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_percent="0.90" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/midInfoGuideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.31" /> <LinearLayout android:id="@+id/infoText" android:layout_width="0dp" android:layout_height="0dp" android:orientation="vertical" android:paddingTop="10sp" app:layout_constraintBottom_toBottomOf="@id/bottomInfoGuideline" app:layout_constraintEnd_toEndOf="@id/rightInfoGuideline" app:layout_constraintStart_toStartOf="@id/leftInfoGuideline" app:layout_constraintTop_toTopOf="@id/topInfoGuideline"> <LinearLayout android:id="@+id/happiness" android:layout_width="350sp" android:layout_height="50sp" android:orientation="horizontal" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="@id/HP" app:layout_constraintDimensionRatio="2:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"> <TextView android:id="@+id/HP" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hp" android:textSize="30sp" android:fontFamily="@font/font" /> <ImageView android:id="@+id/health1" android:layout_width="50sp" android:layout_height="50sp" android:adjustViewBounds="true" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/health_empty" /> <ImageView android:id="@+id/health2" android:layout_width="50sp" android:layout_height="50sp" android:adjustViewBounds="true" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/health_empty" /> <ImageView android:id="@+id/health3" android:layout_width="50sp" android:layout_height="50sp" android:adjustViewBounds="true" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/health_empty" /> <ImageView android:id="@+id/health4" android:layout_width="50sp" android:layout_height="50sp" android:adjustViewBounds="true" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/health_empty" /> <ImageView android:id="@+id/health5" android:layout_width="50sp" android:layout_height="50sp" android:adjustViewBounds="true" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/health_empty" /> </LinearLayout> <LinearLayout android:id="@+id/expInfo" android:layout_width="350sp" android:layout_height="100sp" android:orientation="horizontal" app:layout_constraintBottom_toBottomOf="@id/bottomInfoGuideline" app:layout_constraintDimensionRatio="2:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@id/leftInfoGuideline" app:layout_constraintTop_toBottomOf="@id/happiness" app:layout_constraintTop_toTopOf="@id/midInfoGuideline"> <TextView android:id="@+id/EXPLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/font" android:text="@string/exp" android:textSize="30sp" /> <TextView android:id="@+id/EXP" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/font" android:text="@string/EXP" android:textSize="30sp" /> </LinearLayout> </LinearLayout> <androidx.constraintlayout.widget.Guideline android:id="@+id/starStartGuideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_percent="0.55" /> <ImageView android:id="@+id/EXPStar" android:layout_width="50sp" android:layout_height="50sp" android:adjustViewBounds="true" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:layout_constraintStart_toStartOf="@id/starStartGuideline" app:layout_constraintTop_toTopOf="@id/midInfoGuideline" app:srcCompat="@drawable/exp_star" /> <TextView android:id="@+id/lvl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/font" android:text="1" android:textColor="#FF0000" android:textSize="25sp" app:layout_constraintEnd_toEndOf="@id/EXPStar" app:layout_constraintStart_toStartOf="@id/EXPStar" app:layout_constraintTop_toTopOf="@id/EXPStar" /> <LinearLayout android:layout_width="350sp" android:layout_height="70sp" app:layout_constraintTop_toTopOf="@id/iconsTop" app:layout_constraintStart_toStartOf="@id/leftInfoGuideline" app:layout_constraintEnd_toEndOf="@id/rightInfoGuideline"> <ImageButton android:id="@+id/studyTimeButton" android:layout_width="50sp" android:layout_height="50sp" android:background="@null" android:scaleType="fitCenter" app:layout_constraintDimensionRatio="1:1" app:srcCompat="@drawable/ui_01_study_time_light_with_colored_shadow" tools:layout_editor_absoluteX="67dp" tools:layout_editor_absoluteY="102dp" android:contentDescription="Study Time" /> </LinearLayout> <androidx.constraintlayout.widget.Guideline android:id="@+id/iconsTop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_begin="20dp" /> </androidx.constraintlayout.widget.ConstraintLayout>
补充说明
- 编辑器预览:字体显示正常,文本样式符合预期
- 实体设备效果:字体未加载,显示系统默认字体
- 文件层级:字体文件放置在
src/main/assets/font/目录下,文件名为fff_forward_regular
内容的提问来源于stack exchange,提问作者Sora Hirasawa
相关产品推荐
相关产品推荐

