使用前需要在 buid.gradle 加入 freetype 依赖
project(":core") {
dependencies {
api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
}
}
project(":desktop") {
dependencies {
implementation project(":core")
implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
}
}
具体实现代码
字体下载地址:阿里免费字体
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
/**
* @Author : wu fu man
* @Time : 2024年5月27日 0027 上午 11:05:36
* @Description : 字体工具
*/
public class FontUtil {
/**
* 字体使用阿里巴巴免费字体
*/
private static final FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("assets/fonts/alibaba.ttf"));
//仅英文
public static BitmapFont getFont(FreeTypeFontGenerator.FreeTypeFontParameter fontStyle) {
return getFont(fontStyle, "");
}
//存在中文
public static BitmapFont getFont(FreeTypeFontGenerator.FreeTypeFontParameter fontStyle, String chineseChars) {
for (char c : chineseChars.toCharArray()) {
fontStyle.characters += c;
}
return generator.generateFont(fontStyle);
}
public static void dispose() {
generator.dispose();
}
public static void main(String[] args) {
/**
* 使用
* @param args
*/
FreeTypeFontGenerator.FreeTypeFontParameter standardFont = new FreeTypeFontGenerator.FreeTypeFontParameter();
standardFont.size = 16;
standardFont.borderColor = Color.BLUE;
standardFont.borderWidth = 1;
standardFont.color = Color.RED;
BitmapFont bitmapFont = getFont(standardFont, "你好");
// bitmapFont 放入响应类,就可以显示 “你好”
}
}