关于在android studio上通过freetype渲染文字1

初步了解freetype和如何在android studio上编译成库并且和运行demo


本人是新手,所以记录一下自己是如何弄的,免得忘了。一步步来吧,目前并没有搞定!
导师给了一个谷歌的GVR的一个sdk或者是别的东西吧,反正就是可以运行,手机上可以看到一个立方体旋转,点击之后立方体消失。这个我的理解就是谷歌给出的一个关于VR的一个示例,然后现在老师要求我在上面增加一个在立方体上显示文字的功能,然后不可以使用贴图的方式。
长话短说,我之前是写c的,所以对安卓这一套几乎完全不熟悉,仅仅知道一点jni的事情,我连android studio都是第一次使用,也是没谁啦,自己从头开始!花了很长时间,大概知道这个GVR是怎么玩的,只是一个大概,没有继续看下去了,就是看到渲染器是怎么弄的,网上有很多opengles的书,下下来感觉都差点意思,不知道是不是谷歌的这个GVR太新了,都没有什么靠谱的资料,里面对于提到opengl的更少,而且很奇怪的就是,网上查到关于android上用opengl用的类都是什么Surface,而这个现在用的GVR类,所以有什么区别也不是很清楚,反正这就是一个故事背景吧。



直接从freetype开始,百度过后,都说是要找一个字库来提供字形,一般的推荐都是freetype。不巧的是,网上的freetype的资料基本上没有什么安卓怎么弄的,这个库主要支持c和c++,偶尔提到阿卓,也是直接讲一个什么技术方法或者讲解一些原理,没有具体步骤更没有什么代码例子,简直是疯了。

直接下载freetype库,然后下载下来的大概是源码,网上都是说要编译成一个库来使用,有一个头文件可以修改一下选择需要编译进去的内容,怎么在android studio上编译更是没有说明,其实有jni经验的我来说,编译还好说,主要是要写一个android.mk,对于makefile一直都是敬而远之的,所以完全没有头绪,网上有很多提供了例子的,本想直接copy来用,但是发现,由于IDE不一样,很难直接用,只要要改改源码的位置,但是这个都我看不明白,花了一天时间,一直都是不成功,我甚至都不知道怎么在android studio上编译jni,之前是在ecplise上使用的,而且也是使用ndk,在cmd上编译的,现在都是通过studio直接下载工具支持,网上都是直接说build或者rebuild,但是没有说明怎么build,简直了,对于小白简直太不够友好了。

事情的转折是,突然搜索到一个资源,FreeTypeLibAndroidJNIDemo,这个资源居然还不需要积分哟!下载之后导入到studio中,原本是ecplise的工程,导入使用import,有点小波折,整体来说不成问题,但是导入了后,开始发愁,不知道怎么用,怎么看,所谓的demo也不知道怎么搞!也无法运行,运行的时候提示没有库,然后首先在studio中提供的终端里面进行编译,这个很麻烦,我是通过命令编译的,实在找不到那个按钮可以ndk编译,好在我知道可以用命令编译,然后百度一下命令是啥就行了!对了,这个工程是已经提供好了mk文件的,简直帮了大忙了,编译过程也没有什么问题,但是编译好了后还是不可以使用,通过网上查询之后得知,需要设置一下路径,大概就是所谓的加载库文件路径吧。方法如下

在模块所在的那个build.gradle中,添加这句话

sourceSets.main {
            jni.srcDirs = []//disable automatic ndk-build call
            jniLibs.srcDir "src/main/libs"
        }
放在里面android的大括号里面就行了,里面的设定,据说,第一个是要设置为空,不然编译的时候会用自己的方式编译文件,大概是这个意思吧,反正设置为空。第二个则是所谓的加载路径,这个路径很重要哦,之前以为是生成的路径,后来想把这个so放到其他项目的时候各种问题,这是后话了。

到此一切顺利,顺利生成so,并且这个demo可以运行了。


简单说明一下,从原理分析一下opengl是如何通过freetype来渲染文字的,其实就是使用freetype中提供的字形,至于为什么,就不好说了,有一些个人猜测,反正这个demo就是在Java层放下面调用,输入一个文字或者字母什么的,下面通过一番操作,打印一堆0和1,仔细看看就是这个字形,对,就是这么简陋,使用打印的,还特地找个手机来运行,结果手机上根本什么都没有,就是在logcat上看到,不过也是很有作用的,估计要真正渲染,就需要opengl的函数,只靠freetype没有办法做到吧。


感觉没有什么实际内容,就是自己的一个笔记吧,这篇的主要内容就是,终于把freetype在android studio上跑起来了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值