`
kevin2562
  • 浏览: 118747 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android游戏开发之旅五 Path和Typeface

阅读更多
今天我们继续处理上次 Android游戏开发之旅四 Canvas和Paint实例 中提到的Path路径和Typeface字体两个类。对于Android游戏开发或者说2D绘图中来讲Path路径可以用强大这个词来形容。在 Photoshop中我们可能还记得使用钢笔工具绘制路径的方法。Path路径类在位于android.graphics.Path中,Path的构造方法比较简单,如下:

  Path cwj=new Path(); //构造方法

  下面我们画一个封闭的原型路径,我们使用Path类的addCircle方法

  cwj.addCircle(10,10,50,Direction.CW); //参数一为x轴水平位置,参数二为y轴垂直位置,第三个参数为圆形的半径,最后是绘制的方向,CW为顺时针方向,而CCW是逆时针方向。

  结合Android上次提到的Canvas类中的绘制方法drawPath和drawTextOnPath,我们继续可以在onDraw中加入。

  canvas.drawPath(cwj,paintPath); //Android123提示大家这里paintPath为路径的画刷颜色,可以见下文完整的源代码。

  canvas.drawTextOnPath("Android123 - CWJ",cwj,0,15,paintText); //将文字绘制到路径中去,有关drawTextOnPath的参数如下:

  方法原型public void drawTextOnPath (String text, Path path, float hOffset, float vOffset, Paint paint)

  参数列表

  text 为需要在路径上绘制的文字内容。

  path 将文字绘制到哪个路径。

  hOffset 距离路径开始的距离

  vOffset 离路径的上下高度,这里Android开发网提示大家,该参数类型为float浮点型,除了精度为8位小数外,可以为正或负,当为正时文字在路径的圈里面,为负时在路径的圈外面。

  paint 最后仍然是一个Paint对象用于制定Text本文的颜色、字体、大小等属性。


下面是我们的onDraw方法中如何绘制路径的演示代码为:
@Override
   protected void onDraw(Canvas canvas) {

    Paint paintPath=new Paint();

    Paint paintText=new Paint();

    paintPath.setColor(Color.Red); //路径的画刷为红色

    paintText.setColor(Color.Blue); //路径上的文字为蓝色

    Path pathCWJ=new Path();

    pathCWJ.addCircle(10,10,50,Direction.CW); // 半径为50px,绘制的方向CW为顺时针

    canvas.drawPath(pathCWJ,paintPath);

   canvas.drawTextOnPath("Android123 - CWJ",pathCWJ,0,15,paintText); //在路径上绘制文字
  }
   有关路径类常用的方法如下:

void  addArc(RectF oval, float startAngle, float sweepAngle)  //为路径添加一个多边形

void  addCircle(float x, float y, float radius, Path.Direction dir)  //给path添加圆圈

void  addOval(RectF oval, Path.Direction dir)  //添加椭圆形

void  addRect(RectF rect, Path.Direction dir)  //添加一个区域
  
void  addRoundRect(RectF rect, float[] radii, Path.Direction dir)  //添加一个圆角区域

boolean  isEmpty()  //判断路径是否为空

void  transform(Matrix matrix)  //应用矩阵变换

void  transform(Matrix matrix, Path dst)  //应用矩阵变换并将结果放到新的路径中,即第二个参数。

  有关路径的高级效果大家可以使用PathEffect类,有关路径的更多实例Android123将在今后的游戏开发实战中讲解道。

Typeface字体类

平时我们在TextView中需要设置显示的字体可以通过TextView中的setTypeface方法来指定一个Typeface对象,因为Android的字体类比较简单,我们列出所有成员方法

static Typeface  create(Typeface family, int style)  //静态方法,参数一为字体类型这里是Typeface的静态定义,如宋体,参数二风格,如粗体,斜体

static Typeface  create(String familyName, int style)  //静态方法,参数一为字体名的字符串,参数二为风格同上,这里我们推荐使用上面的方法。

static Typeface  createFromAsset(AssetManager mgr, String path)  //静态方法,参数一为AssetManager对象,主要用于从APK的assets文件夹中取出字体,参数二为相对于Android工程下的 assets文件夹中的外挂字体文件的路径。

static Typeface  createFromFile(File path)  //静态方法,从文件系统构造一个字体,这里参数可以是sdcard中的某个字体文件

static Typeface  createFromFile(String path)  //静态方法,从指定路径中构造字体

static Typeface  defaultFromStyle(int style) //静态方法,返回默认的字体风格

int  getStyle()  //获取当前字体风格
final boolean  isBold()  //判断当前是否为粗体
final boolean  isItalic()  //判断当前风格是否为斜体

  本类的常量静态定义,首先为字体类型名称

Typeface DEFAULT 
Typeface DEFAULT_BOLD
Typeface MONOSPACE
Typeface SANS_SERIF
Typeface SERIF

字体风格名称

int BOLD 
int BOLD_ITALIC 
int ITALIC
int NORMAL 
分享到:
评论
3 楼 dalin89 2012-02-10  
2 楼 dalin89 2012-02-10  
1 楼 dalin89 2012-02-10  
统构造一个字体,这里参

相关推荐

    Android游戏开发之旅

    5.Android游戏开发之旅五 Path和Typeface 6.Android游戏开发之旅六 自定义View 7.Android游戏开发之旅七 自定义SurfaceView 8.Android游戏开发之旅八 SurfaceView类实例 9.Android游戏开发之旅九 VideoView类...

    Android Typeface Helper.zip

    在Android开发中,UI设计和用户体验是至关重要的部分,而字体作为UI的重要组成部分,能够显著影响应用的视觉风格和易读性。`Android Typeface Helper`是一个专为Android开发者设计的库,旨在简化自定义字体的集成...

    Android 学习(25)TypeFace

    在Android开发中,`TypeFace`是一个非常重要的概念,它涉及到UI设计中的字体风格和个性化。`TypeFace`是Android SDK提供的一种类,允许开发者自定义应用中的字体样式,以区别于系统默认的字体,从而提升用户体验和...

    知识共享-Android游戏开发所涉及到的东西(雷惊风).

    在Android游戏开发中,长按事件是常见的用户交互方式之一,尤其在动作类游戏中,长按发射武器等操作频繁出现。理解长按Button的工作原理对于设计响应迅速且用户友好的游戏至关重要。 在Android中,`ImageButton`是...

    Android游戏开发20回合

    5. **Path和Typeface**:`Path`用于构造复杂的矢量图形路径,而`Typeface`用来改变文字的字体风格,对于游戏中的文字和标识设计很重要。 6. **手势识别**:Android提供了`GestureDetector`类,支持滑动、点击等手势...

    norbsoft/android-typeface-helper

    Android lacks proper support for custom typefaces. Most obvious method of defining typeface for UI elements via XML attributes is missing from default framework views. This library makes it a lot ...

    Android游戏开发20回合doc

    #### 五、Path和Typeface **知识点概述:** - **Path**:用于绘制复杂的形状路径。 - **Typeface**:定义字体样式,常用于自定义文字显示。 **Path常用方法:** - `moveTo(float x, float y)`:移动起点。 - `line...

    精通Android开发之界面速成

    在Android开发中,界面设计是至关重要的,因为它直接影响到用户的体验和应用的吸引力。本文将探讨如何快速精通Android界面开发,特别关注从J2ME项目移植到Android平台的过程。 首先,Android与J2ME虽然在基本接口...

    两个小时精通Android开发之界面篇

    "两个小时精通Android开发之界面篇"主要围绕如何快速理解和掌握Android界面设计的关键知识点展开,特别是对于有J2ME背景的开发者来说,如何进行平滑迁移。 首先,Android与J2ME在界面组件和接口上存在一些差异。在...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Android应用开发中使用第三方字体

    在Android应用开发中,为了...总之,Android应用开发中使用第三方字体可以极大地丰富UI设计,但同时也需要注意性能、兼容性和版权等问题。通过合理的方式引入和管理自定义字体,可以为用户提供更加美观和个性化的体验。

    Android Emoji表情开发,让你的APP瞬间充满生机

    - 在开发过程中,确保在多种设备和Android版本上进行测试,以确保Emoji的正确显示。可以使用`TextView`的`getPaint().getTextBounds()`方法来检查文字边界,确保表情不会超出控件范围。 8. **适配不同屏幕尺寸和...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Android解决了字体选择的问题

    在实际开发过程中,还需要考虑到性能优化,例如避免频繁的内存分配和减少不必要的字体加载。此外,如果要支持大量字体,可以考虑使用懒加载策略,只在用户需要时才加载相应的字体。 总结来说,解决Android上的字体...

    Typeface

    标题中的"Typeface"指的是字体设计,这在IT行业中是一个重要的视觉传达元素,尤其是在图形设计、网页设计和软件用户界面(UI)设计中。字体不仅关乎文字的可读性,还影响着整体的设计风格和品牌识别度。在数字媒体中,...

    Android开发EditText属性.txt

    ### Android开发中的EditText属性详解 #### 一、概述 `EditText`是Android中非常重要的一个控件,主要用于接收用户输入的文本。它继承自`TextView`,而`TextView`又继承自`View`,因此`EditText`具备了`View`和`...

    [Android开发从零开始].4.TextView控件学习

    在Android应用开发中,TextView控件是...总的来说,TextView是Android开发中的基础组件,其丰富的功能和灵活性使得它在各种场景下都能发挥重要作用。熟练掌握TextView的使用,对于构建用户友好的Android应用至关重要。

Global site tag (gtag.js) - Google Analytics