发现freetype很有用,但是android自带的那个使用的是极少部分功能,刚好看到csdn上面的一篇文章,转载一下。

http://blog.csdn.net/junglefly/archive/2010/02/22/5317779.aspx

 第一次接触android,第一次接触freetype。

freetype在android该把那些文件编译进去,对于初学者有点摸不着头脑,还好,现在unix下编译通过,然后直接找"*。o"文件来写 make文件,

还好,我使用freetype的功能比较初级,所以这些文件已经能够满足我的要求。

共享一下,希望能够让和我一样比较不聪明的初学者有个借鉴。

1) 建议看看源代码中docs/CUSTOMIZE 这个文件,来指导你如何定制编译freetype功能。

特别注意的是,你可以通过更改include/freetype/config/ftoption.h 这个文件里的宏定义来简单的打开和关闭一些功能模块。

2) 如果你使用"*.ttf"等truetype字体的话,请特别注意docs/TRUETYPE这个文件。

    由于版权等问题,在freetype源代码中,默认是关闭“TrueType glyphs hinting”的。

    这样可能画出来的字不美观。

    你可以通过在ftoption.h中打开下面宏定义来打开该功能,

 #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER

3)由于在android下要自己写makefile文件,所以知道那些文件要编译是必须的。这个可以通过读文件docs/INSTALL.ANY 来解决。读完这个文件应该找到那些文件需要加入编译源文件中。

4)下面是我使用的makefile,仅供参考

# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.cpprg/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := ENGINE_FREETYPE_LIB

LOCAL_SRC_FILES := src/base/ftsystem.c /
      src/base/ftinit.c /
      src/base/ftdebug.c /
      src/base/ftbase.c /
      src/base/ftbbox.c /
      src/base/ftglyph.c /
      src/base/ftbdf.c /
      src/base/ftbitmap.c /
      src/base/ftcid.c /
      src/base/ftfstype.c /
      src/base/ftgasp.c /
      src/base/ftgxval.c /
      src/base/ftlcdfil.c /
      src/base/ftmm.c /
      src/base/ftotval.c /
      src/base/ftpatent.c /
      src/base/ftpfr.c /
      src/base/ftstroke.c /
      src/base/ftsynth.c /
      src/base/fttype1.c /
      src/base/ftwinfnt.c /
      src/base/ftxf86.c
#      src/base/ftmac.c

LOCAL_SRC_FILES += src/bdf/bdf.c /
      src/cff/cff.c /
      src/cid/type1cid.c /
      src/pcf/pcf.c /
      src/pfr/pfr.c /
      src/sfnt/sfnt.c /
      src/truetype/truetype.c /
      src/type1/type1.c /
      src/type42/type42.c /
      src/winfonts/winfnt.c /

#    -- rasterizers (optional; at least one is needed for vector formats)

LOCAL_SRC_FILES += src/raster/raster.c /
      src/smooth/smooth.c

#    -- auxiliary modules (optional)

LOCAL_SRC_FILES += src/autofit/autofit.c /
      src/cache/ftcache.c /
      src/gzip/ftgzip.c /
      src/lzw/ftlzw.c /
      src/gxvalid/gxvalid.c /
      src/otvalid/otvalid.c /
      src/psaux/psaux.c /
      src/pshinter/pshinter.c /
      src/psnames/psnames.c


LOCAL_CFLAGS    :=  /
 -Isources/freetype/src/autofit/ /
 -Isources/freetype/src/base/ /
 -Isources/freetype/src/bdf/ /
 -Isources/freetype/src/cff/ /
 -Isources/freetype/src/cid/ /
 -Isources/freetype/src/gxvalid/ /
 -Isources/freetype/src/gzip/ /
 -Isources/freetype/src/lzw/ /
 -Isources/freetype/src/otvalid/ /
 -Isources/freetype/src/pcf/ /
 -Isources/freetype/src/pfr/ /
 -Isources/freetype/src/psaux/ /
 -Isources/freetype/src/pshinter/ /
 -Isources/freetype/src/psnames/ /
 -Isources/freetype/src/raster/ /
 -Isources/freetype/src/sfnt/ /
 -Isources/freetype/src/smooth/ /
 -Isources/freetype/src/tools/ /
 -Isources/freetype/src/tools/docmaker/ /
 -Isources/freetype/src/tools/ftrandom/ /
 -Isources/freetype/src/truetype/ /
 -Isources/freetype/src/type1/ /
 -Isources/freetype/src/type42/ /
 -Isources/freetype/src/winfonts/ /
 -Isources/freetype/include /
 -Isources/freetype/include/freetype/ /
 -Isources/freetype/include/freetype/config/ /
 -Isources/freetype/include/freetype/internal/ /
 -Isources/freetype/include/freetype/internal/services/
 
 
LOCAL_CFLAGS  += -D__LINUX_CPL__ /
     -DUNICODE /
     -DFT2_BUILD_LIBRARY /
#     -D__NEW__ /
#     -D__SGI_STL_INTERNAL_PAIR_H /
#     -D_MBSTATE_T /
#     -DANDROID /
#     -DOS_ANDROID /
#     -DTN_PLATFORM_ANDROID /
#     -DSERVICEPROXY_DEBUG
#     -DFT_OPTION_AUTOFIT2 /
#     -DFT_CONFIG_OPTION_SYSTEM_ZLIB /
#     -DFT_CONFIG_CONFIG_H="" /

include $(BUILD_STATIC_LIBRARY)

更多相关文章

  1. ubuntu下android内核编译
  2. Android(安卓)學習之旅!(2)
  3. Android应用程序目录结构分析
  4. Android读取文件
  5. Android的源代码结构
  6. Android(安卓)权限管理 — 只防君子不防小人
  7. Android(安卓)skia 和open skia的比较
  8. -如何将Eclipse中的项目迁移到Android(安卓)Studio 中
  9. ADB 工具

随机推荐

  1. 编写ios和android共用的c/c++库时 使用ic
  2. Android应用程序窗口(Activity)的测量(Measu
  3. Android app实现静默安装并自动打开,实现
  4. 问科技:手机厂商需不需要提供新版 Android
  5. Android多媒体开发 Pro Android Media 第
  6. Android Studio平板模拟器横屏竖屏调整
  7. Android原生页面(练手任务)
  8. 小米手機十月份會有原生 Android 2.3.5
  9. Android百度地图——根据城市名,地址名获
  10. Android启动APP时黑屏白屏