发现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. 谷歌Android为何关闭源代码?
  2. 【WebRTC】在Android上用NDK编译WebRtc音频增益模块(AGC),降噪(NS),j
  3. Android 软键盘 禁用回车功能或者换成搜索功能
  4. Android 数据存储(二) 文件的使用
  5. Android WebView实现选择本地图片拍照功能
  6. android保存文件到手机内存

随机推荐

  1. Android(安卓)Studio下 SVN忽略文件设置
  2. Android(安卓)AdapterViewFlipper 使用示
  3. Android实现歌词滑动显示
  4. 播放raw中的音乐范例
  5. 根据经纬度跳转三方app地图导航
  6. Android(安卓)TabSwitcher自定义控件
  7. Android(安卓)Location Providers - gps,
  8. Android(安卓)之Http
  9. android addfootview
  10. Android(安卓)自定义组合控件