零基础学习SDL开发之在Android使用SDL2.0加载字体

这篇博客介绍了如何在Android环境下使用SDL2.0结合SDL_ttf库加载和渲染自定义字体。通过移植SDL_ttf,开发者可以将字体文件应用到SDL应用程序中,实现文本的图形化显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇文章我们知道了如何在android使用SDL2.0来渲染显示一张png图,而且在上上一篇我们知道如何使用sdl来渲染输出bmp图,那么sdl是否可以渲染输出自己喜爱的字体库的字体呢?答案是当然可以。

我们需要移植SDL_ttf字体库来支持相应的字体的渲染输出。

一、移植SDL_ttf库:

使用如下命令,从SDL Mercurial获取SDL_image的源码:

hg clone https://hg.libsdl.org/SDL_ttf/

SDL_ttf拷贝到在上一篇文章中的android-project\jni\下,将平台相关的代码去掉以及自动自动化相关的文件去掉,保留android相关的代码与文件。

二、在android中添加相关的引用:

修改android-project\jni\src\Android.mk,添加相关的引用:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := main

SDL_PATH := ../SDL
SDL_IMAGE_PATH := ../SDL2_image
SDL_TTF_PATH := ../SDL_ttf

LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include 
LOCAL_C_INCLUDES +=    $(LOCAL_PATH)/$(SDL_IMAGE_PATH)
LOCAL_C_INCLUDES +=    $(LOCAL_PATH)/$(SDL_TTF_PATH)

# Add your application source files here...
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
    SDL_lesson.c

LOCAL_SHARED_LIBRARIES := SDL2
LOCAL_SHARED_LIBRARIES += SDL2_image
LOCAL_SHARED_LIBRARIES += SDL2_ttf

LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog

include $(BUILD_SHARED_LIBRARY)

三、代码中引用相关的头文件:

/*
 * SDL_lesson.c
 * Clipping Sprite Sheets
 *  Created on: Aug 12, 2014
 *      Author: clarck
 */
#include <jni.h>
#include "SDL.h"
#include "SDL_image.h"
#include "SDL_ttf.h"
#include "SDL_logger.h"
#include "SDL_main.h"
#include "SDL_cleanup.h"

//The attributes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

struct SDL_Window *window = NULL;
struct SDL_Renderer *render = NULL;

struct SDL_Texture *background = NULL;
struct SDL_Texture *image = NULL;

struct SDL_Surface *surface = NULL;
struct SDL_Texture *texture = NULL;

四、加载图片的部分修改为IMG_LoadTexture:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值