`
java-admin
  • 浏览: 1386431 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

Android画图学习总结(五)——Paint

阅读更多
Android画图学习总结(五)——Paint

前面的Android画图学习总结的系列中,我们分别学习了BitmapDrawableAniamtion,除了这些画图元素之外,开发应用程序使用最多的还是String(字符串),下面我们就如何显示String详细的说明。

引用Android SDK中显示String的函数,列举如下:

 

drawText(String text, int start, int end, float x, float y, Paint paint) Draw the text, with origin at (x,y), using the specified paint.
void drawText(char[] text, int index, int count, float x, float y, Paint paint) Draw the text, with origin at (x,y), using the specified paint.
void drawText(String text, float x, float y, Paint paint) Draw the text, with origin at (x,y), using the specified paint.
void drawText(CharSequence text, int start, int end, float x, float y, Paint paint) Draw the specified range of text, specified by start/end, with its origin at (x,y), in the specified Paint.
void drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint) Draw the text, with origin at (x,y), using the specified paint, along the specified path.
void drawTextOnPath(char[] text, int index, int count, Path path, float hOffset, float vOffset, Paint paint) Draw the text, with origin at (x,y), using the specified paint, along the specified path.

在所有的函数中,参数主要分为3部分:字符串(String、char、CharSequence),长度(start—end、index—count),如何显示String(paint)。前2个参数一看就明白,这里我们主要介绍第3个参数Paint paint。

首先,什么是Paint?

引用Android SDK 中的说明,Paint类包含样式和颜色有关如何绘制几何形状,文本和位图的信息。Canvas是一块画布,具体的文本和位图如何显示,这就是在Paint类中定义了。

然后,Paint有哪些功能?

在了解Paint的功能前,我们按照Word文档的功能,说明下对String的显示,有影响的因素有哪些?字体、大小(TextSize)、颜色 (TextColor)、对齐方式(TextAlign)、粗体(Bold)、斜体(Italic)、下划线(Underline)等,下面我们就按照这 些影响String显示的因素,结合Android SDK中Paint类的介绍,详细说明Paint类有哪些功能。

在Android SDK中使用Typeface类来定义字体,Typeface类:指定字体和字体的固有风格,用于Paint,类似于Paint的其他 textSize,textSkewX,textScaleX一样,来说明如何绘制文本。归纳起来,Typeface类主要包括以下3个方面:

  1. 一些常量的定义(BOLD,BOLD_ITALIC,ITALIC,NORMAL)
  2. 常量字体的定义:
    字体(Typeface) 说明
    DEFAULT The default NORMAL typeface object
    DEFAULT_BOLD The default BOLD typeface object.
    MONOSPACE The NORMAL style of the default monospace typeface.
    SANS_SERIF The NORMAL style of the default sans serif typeface.
    SERIF The NORMAL style of the default serif typeface.

    这些常量字体,在程序中是可以直接使用的,例如:Typeface. SERIF

  3. 函数:创建字体(Create()),获取字体属性(getStyle()、isBold()、isItalic());
    Typeface类不仅定义了字体,还包括粗体(Bold)、斜体(Italic)。

其它对显示String有影响的因素,我们都可以在Paint类中找到它们的影子,如下:

类型

功能

Paint中的相关操作

Typeface 字体 Typeface  setTypeface(Typeface typeface)
Typeface   getTypeface()
class Paint.Align 对齐方式 setTextAlign(Paint.Align align)
Paint.Align getTextAlign()
  字体大小 int getTextSize()
setTextSize(float textSize)
  颜色 setColor(int color)
int getColor()
  下划线 boolean  isUnderlineText()
setUnderlineText(boolean underlineText)

看了这些,想必大家对Paint类也有些基本的了解,实际上在Paint类中还有其他一些功能,比如说Alpha、Dither等,这些也只有大家去Android SDK中仔细阅读了,由于篇幅有限,就不在此详细说明。

最后,如何使用Paint显示String?

实际上,在前面的一些篇幅中的例子程序中都使用了Paint类,在Android画图学习总结(二)——Bitmap例子的基础上修改下,说明如何使用Paint,如下:
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
Paint p = new Paint();
String familyName = “宋体”;
Typeface font = Typeface.create(familyName,Typeface.BOLD);
p.setColor(Color.RED);
p.setTypeface(font);
p.setTextSize(22);
canvas.drawText(mstrTitle,0,100,p);
}
程序运行后,界面显示如下:

Paint

总结说明

String是我们开发应用程序最经常处理的数据,如何显示String是开发应用程序最基本的要求,在这里我只是抛砖引玉下,简要介绍了Paint类,更加深入的学习请大家到Android SDK中去详细阅读吧!

 

 

 

 

 

 

 

http://hi.baidu.com/lfcaolibin/blog/item/c6937ad7d9e4202407088ba6.html

 

分享到:
评论

相关推荐

    Android画图学习总结(五)——Paint_玉树临疯_ 京华志

    根据给定文件的信息,本文将对Android绘画技术中的Paint组件进行深入探讨,并总结其关键知识点。Paint在Android绘画中扮演着至关重要的角色,它不仅控制了绘制文本、形状的颜色和风格,还支持复杂的绘画效果。 ### ...

    android画图总结

    最后,【Android画图学习总结(五)——Paint.doc】探讨了Paint类。Paint是Android绘图中的关键元素,它定义了绘制时的颜色、风格、字体等属性。例如,可以设置颜色模式(ColorMode),选择不同的刷子样式...

    安卓Android源码——画图程序源码.zip

    本资源“安卓Android源码——画图程序源码.zip”提供了这样一个应用的源代码,帮助开发者理解和实现自定义画布功能。 首先,让我们探讨一下Android中的画图机制。Android提供了一个名为`Canvas`的类,它是绘画的...

    Android源码——画图程序源码.zip

    这个"Android源码——画图程序源码.zip"文件包含了一个简单的Android应用程序,它允许用户在屏幕上自由绘制图形。通过分析这个源码,我们可以深入理解Android图形系统、触摸事件处理以及自定义View的机制。 首先,...

    android 应用 源代码——画图 免费

    总之,这个"画图"应用的源代码涵盖了Android图形系统的核心概念和技术,对于想要学习Android应用开发,尤其是涉及图形绘制和用户交互的开发者来说,是一份宝贵的学习资源。通过深入研究和实践,可以进一步提升开发...

    Android源码——画图工具源码.7z

    下面,我们将深入探讨Android画图工具的实现原理及其相关的知识点。 1. **Canvas与Paint**: Android中的`Canvas`是绘画的基础,它提供了在Bitmap或者屏幕上的图形绘制能力。`Paint`对象则控制了绘制的样式,如颜色...

    android 画图集合.zip

    在Android平台上,画图功能是通过Canvas类和相关的图形API实现的,这使得开发者能够创建丰富的自定义视图和交互式图形界面。本压缩包"android 画图集合.zip"包含多个示例项目,旨在帮助开发者深入理解Android图形...

    Android源码——画图工具源码.zip

    这份"Android源码——画图工具源码.zip"提供了实现此类应用的具体代码,让我们来深入探讨其中所涵盖的知识点。 1. **Android图形系统**:Android使用SurfaceView或者Canvas来支持实时的图形绘制。SurfaceView是...

    安卓Android源码——画图工具源码.zip

    这份“安卓Android源码——画图工具源码.zip”压缩包提供了一个实现此类功能的源代码示例。通过分析和学习这份源码,我们可以了解如何在Android上构建一个简单的画图应用。 首先,我们要明白Android应用的基本架构...

    安卓Android源码——使用代码绘制一个电池 (非图片).rar

    总结,这个"安卓Android源码——使用代码绘制一个电池 (非图片)"的示例,旨在教开发者如何利用Android的图形绘制API来自定义复杂UI组件,不仅提升了用户体验,也锻炼了开发者对底层图形绘制的理解和掌控能力。...

    Android源码——火焰效果程序源码_new_55.zip

    这份"Android源码——火焰效果程序源码_new_55.zip"压缩包提供了实现这一特效的源代码,帮助开发者深入理解如何在Android应用中创建动态、逼真的火焰动画。下面,我们将详细探讨与这个项目相关的Android开发知识点。...

    安卓Android源码——纯java编写2d坦克小游戏.zip

    这篇内容将深入解析《安卓Android源码——纯Java编写2D坦克小游戏》的相关知识点,主要涉及以下几个方面: 1. **Android开发环境**:首先,这个项目是基于Android平台的,这意味着你需要一个完整的Android Studio...

    Android绘图机制与处理技巧(一)——Android绘图技巧

    Android绘图的核心在于`Canvas`和`Paint`对象。`Canvas`可以看作是画布,它提供了各种绘制几何形状、文本和位图的方法。`Paint`则作为画笔,定义了颜色、样式和字体等绘制属性。`Layer`则是管理这些绘制操作的一种...

    安卓Android源码——(添加自定义多边形).rar

    这个压缩包文件"安卓Android源码——(添加自定义多边形).rar"显然是提供了一个关于如何在Android应用中创建自定义多边形的示例代码。 1. **自定义View**: 在Android中,我们通常通过继承`View`或`ViewGroup`类来自...

    安卓Android源码——一个涂鸦还有画矩形 圆形的小Demo.zip

    在安卓(Android)平台上开发应用时,我们经常会遇到需要实现用户交互、绘制图形的需求,比如创建一个涂鸦应用或者画图工具。这个“安卓Android源码——一个涂鸦还有画矩形 圆形的小Demo.zip”就是这样一个示例,它...

    安卓Android源码——图片阴影效果和影子效果源码.zip

    在Android中,可以使用`Paint`类的`setShadowLayer()`方法来为图形添加阴影效果。这个方法接受四个参数:浮点型的阴影半径、阴影偏移量的X轴值、阴影偏移量的Y轴值和阴影颜色。阴影半径决定了阴影的模糊程度,偏移...

    安卓Andriod源码——橡皮擦与画笔的demo.zip

    在安卓(Android)平台上开发应用时,我们经常会遇到需要实现画笔(Pen)和橡皮擦(Eraser)功能的情况,比如在画图应用或手写笔记应用中。本示例是一个基于Android的源码Demo,它展示了如何在Android应用程序中实现...

Global site tag (gtag.js) - Google Analytics