Tip:
Highlight text to annotate it
X
这堂课讲解bada的文本功能。
当文本绘制到屏幕上时,字体是一个重要的属性。
在bada中,字体是一个单独的类。
可以创建一个Font类,并指定风格和大小。
通过设置Canvas的字体,通过Canvas绘制文本,
就可以在屏幕上输出指定字体的文本了。
创建字体时可以设置字体的名字,风格和大小。
可以通过Font类的SystemFontListN函数获取支持的字体的列表,
在列表中选择一个字体。
支持PLAIN, ITALIC和BOLD风格的字体,通过位与"OR"操作设置复合风格。
通过指定点数来设置字体的大小。
可以设置字体的字符间隔,笔画,和下划线等属性。
Font类也提供了获取字体特性的函数,
可以得到字体的方向,下降,上升和最大长宽。
这个样例演示如何创建一个字体,并在屏幕上绘制文本。
通过指定的风格和大小创建字体。
设置字体的下划线属性。
接着将字体加入到Canvas.
现在可以使用创建的font绘制文本了。
文本功能只能显示简单的文本,EnrichedText支持布局。
EnrichedText通过设置
垂直排列,水平排列,文本换行,
行间距,文本缩写等属性来进行布局。
在EnrichedText函数中,可以结合文本元素来改变文本,
比如背景设,前景色和字体等。
这样一个富文本的样例。
创建一个EnrichedText对象,指定HorizontalAlignment, VerticalAlignment,
TextWrapStyle和TextAbbreviationEnabled等属性。
之后,将文本元素添加到EnrichedText中。
首先,需要一个字符串,接着指定颜色和字体。
创建一些带有不同颜色的元素。
将这些文本元素添加到EnrichedText,在屏幕上绘制文本。
如你所见,字符串安装指定的方式排列,
超出边界的部分被剪掉了。
现在讲一下bada的光栅缓存,
缓存就像C的数组,
数组的每个元素对应一个像素的颜色值。
像素颜色值按照行扫描的方式存在数组中。
像素从左上角到右上角,再从左到右进行存储,
通常bada的缓存的格式为ARGB8888。
每个像素的ARGB值由4个8位的无符号字符格式组成。
根据具体情况,
编码的流可以直接存储在缓存中。
像JPEG的流就可以直接存储在缓存当中。
BufferInfo类包含了缓存相关的信息。
这个类包含了Canvas的缓存或者位图图像的缓存。
BitPerPixel描述每个像素有多少位。
PixelFormat描述像素值的格式,
缓存的长度和宽度,
指向缓存的指针,Pitch表示扫描线使用的字节数。
一个Bitmap通常指一个光栅图片。
在bada中,可以按照下面的方式创建位图。
可以从别的位图拷贝来创建位图,
可以从Canvas拷贝来创建位图,
可以将ByteBuffer数据转成一个位图,
通过Osp::Media::Image类将图像文件解码成一个位图,
也可以创建一个空的位图图像。
经常是创建一个位图图像,然后通过Canvas绘制到屏幕上。
Canvas可以用来旋转,放大和缩小位图。
可以通过BufferInfo类得到位图图像的信息。
Canvas提供了几个位图绘制函数,
一个通过在屏幕上指定位置进行绘制,
一个放大位图的函数,还有旋转和翻动位图的函数。
这个样例演示如何从Canvas创建一个位图,
和通过Canvas绘制位图。
我通过各种函数在屏幕上绘制了各种对象。 通过指定Canvas和Canvas的区域创建位图。
根据指定的位置和大小绘制位图。
这样你就可以看到截取部分屏幕,
并将截取部分绘制到屏幕上的效果。
这个样例读取图像文件,并转换成位图。
样例从资源文件夹下解码一个图片文件,
转换成位图,绘制到屏幕上。
这就是样例的显示效果。
bada提供Nine-Patch图片,
Nine-Patch图片有9个子部分组成,
有些部分可以放缩,有些不可以。 这种图片广泛用于按钮的背景图片。
请看图,图片的灰色部分在放大或者缩小时,
是可以进行放缩的。
明亮的部分是不能进行放缩的。
图片的边角形状保持不变,
这样图片的轮廓可以保持不变。
这堂课中,介绍了bada的图片功能。
Canvas允许你在上面进行绘制,并提供了各种几何原型。
也介绍显示文本和位图函数。