【Android开发】图形图像处理技术-绘制文本

在Android中,虽然可以通过TextView或图片现实文本,但是在开发游戏,特别是开发RPG(角色)类游戏时,会包含很多文字,使用TextView和图片显示文本不太合适,这时,就需要通过绘制文本的方式来实现。
Canvas类提供了一系列绘制文本的方法,下面分别行介绍:

1.drawText()方法用于在画布的指定位置绘制文字。该方法比较常用的语法格式如下:
drawText(String Text,float x,float y,Paint paint);

text用于指定要绘制的文字,x、y分指定文字起始位置的X和Y坐标,paint用于指定使用的画笔。

在画布上输出文字"计算机科学",可以使用下面的代码:
Paint paintText=new Paint();
paintText.setTextSize(20);
canvas.drawText("计算机科学",165,65,paintText);

2.drawPosText()方法
drawPosText()方法也用于在画布上绘制文字,与drawText()不同的是,使用该方法绘制字符串时,需要为每一个字符指定一个位置。该方法比较常用的语法格式如下:

drawPosText(String text,float[] pos,Paint paint);
text用于指定要绘制的文字,pos用于指定每一个字的位置,paint用于指定使用的画笔。

例如,要在画布上分两行输出文字"很高兴见到你",可以使用下面的代码:
Paint paintText=new Paint();
paintText.setTextSize(24);
float pos=new float[]{80,215,105,215,130,215,80,240,105,240,130,240};
canvas.drawPosText("很高兴见到你",pos,paintText);

下面来实现一个游戏对白界面:

用来显示自定义的绘图类的布局文件(载入一张假设的游戏背景图gamebmp)
res/layout/main.xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/gamebmp"
    android:id="@+id/frameLayout1"
    android:orientation="vertical"
    >

</FrameLayout>

打开MainActivity,在文件中创建名为MyView的内部类,继承android.view.View类,并添加构造方法和重写onDraw(Canvas canvas)方法,在里面进行作图:
MainActivity:

package com.example.test;  

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout;

public class MainActivity extends Activity {  

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  

        //获取布局文件中添加的帧布局管理器
        FrameLayout ll=(FrameLayout)findViewById(R.id.frameLayout1);
        //将自定义的MyView视图添加到帧布局
        ll.addView(new MyView(this));
	}  

    public class MyView extends View{

		public MyView(Context context) {
			super(context);
			// TODO Auto-generated constructor stub
		}

		@Override
		protected void onDraw(Canvas canvas) {
			Paint paintText=new Paint();//创建一个采用默认设置的画笔
			paintText.setColor(0xFFFF6600);//设置画笔颜色
			paintText.setTextAlign(Align.LEFT);//设置文字左对齐
			paintText.setTextSize(24);//设置文字大小
			paintText.setAntiAlias(true);//使用抗锯齿功能
			canvas.drawText("勇士,能否帮我去送信?", 520, 75, paintText);
			float[] pos=new float[]{400,260,425,260,450,260,475,260,
					363,290,388,290,413,290,438,290,463,290,488,290,513,290};
			canvas.drawPosText("好的,我接受任务!", pos, paintText);
			super.onDraw(canvas);
		}

    }
}

运行效果如图所示

转载请注明出处:http://blog.csdn.net/acmman/article/details/45306897

时间: 2024-10-27 11:36:02

【Android开发】图形图像处理技术-绘制文本的相关文章

【Android开发】图形图像处理技术-绘制路径

在Android中提供了绘制路径的功能.绘制一条路径可以分为创建路径和将定义好的路径绘制在画布上两部分,下面分别进行介绍. 1.创建路径 要创建路径,可以使用android.graphics.Path类来实现.Path类包含一组矢量绘图方法,如画圆.矩形.弧.线条等.常用的绘图方法如下表: void  addArc(RectF oval, float startAngle, float sweepAngle)  //为路径添加一个多边形   void  addCircle(float x, fl

【Android开发】图形图像处理技术-绘制几何图形

常见的几何图形包括点.线.弧.矩形等.在Android中,Canvas类提供了丰富的绘制几何图形的方法,通过这些方法,可以绘制出各种几何图形.常用的几何图形的绘制方法如下所示:1. 画一个圆使用的是drawCircle:canvas.drawCircle(cx, cy, radius, paint);x.y代表坐标.radius是半径.paint是画笔,就是画图的颜色; 2. 在画图的时候还要有注意,你所画的矩形是实心(paint.setStyle(Paint.Style.FILL))还是空心(

【Android开发】图形图像处理技术-绘制图片

在Android中,Canvas类不仅可以绘制几何图形.文件和路径,还可以用来绘制图片.想要使用Canvas类绘制图片,只需要使用Canvas类提供的如下表所示的方法将Bitmap对象中保存的图片绘制到画布上即可. drawBitmap(Bitmap bitmap,Rect src,RectF dst,Paint paint) 用于从指定点绘制从源位图中"挖取"的一块 drawBitmap(Bitmap bitmap,float left,float top,Paint paint)

android中图形图像处理之drawable用法分析_Android

本文实例讲述了android中图形图像处理之drawable用法.分享给大家供大家参考.具体如下: 一.如何获取 res 中的资源 数据包package:android.content.res 主要类:Resources 其主要接口按照功能,划分为以下三部分: getXXXX() 例如: int getColor(int id) Drawable getDrawable(int id) String getString(int id)  直接获取res中存放的资源 InputStream ope

android中图形图像处理之drawable用法分析

本文实例讲述了android中图形图像处理之drawable用法.分享给大家供大家参考.具体如下: 一.如何获取 res 中的资源 数据包package:android.content.res 主要类:Resources 其主要接口按照功能,划分为以下三部分: getXXXX() 例如: int getColor(int id) Drawable getDrawable(int id) String getString(int id)  直接获取res中存放的资源 InputStream ope

Android开发中使用achartengine绘制各种图表的方法

本文实例讲述了Android开发中使用achartengine绘制各种图表的方法.分享给大家供大家参考,具体如下: 1. ABarChart.java package com.anjoyo.achartengine; import java.util.Random; import org.achartengine.ChartFactory; import org.achartengine.chart.BarChart.Type; import org.achartengine.model.Cat

【Android开发】图形图像处理技术-Bitmap和BitmapFactory类

一.Bitmap类 Bitmap类代表位图,是Android系统中图像处理的一个重要类.使用该类,不仅可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,而且还可以指定格式保存图像文件.对于这些操作,都可以通过Bitmap类提供的方法来实现.Bitmap类提供的常用方法如表所示: (1)public final int getHeight():获取位图宽度 (2)public final int getWidth():获取位图高度 (3)public static Bitmap createB

【Android开发】图形图像处理技术-常用绘图类之Paint类

    Paint类代表画笔,用来描述图形的颜色风格,如线宽.颜色.透明度和填充效果等信息.使用Paint类时,首先需要创建该类的对象,这可以通过该类提供的构造方法来实现.通常情况下,只需要使用无参数的构造方法来创建一个使用默认设置的Paint对象,具体代码如下: Paint paint=new Paint(); 创建Paint类的对象之后,还可以通过该对象提供的方法来对画笔的默认设置进行改变,例如,改变画笔的颜色.笔触宽度等.用于改变画笔设置的常用方法如表所示: 1.图像绘制 setARGB(

【Android开发】图形图像处理技术-常用绘图类之Canvas类

Canvans类代表画布,通过该类提供的方法,可以绘制各种图形(如矩形.圆形和线条等).通常情况下,要在Android中绘图,需要先创建一个继承自View类的视图,并且在该类中重写onDraw(Canvas canvas)方法,然后在显示绘图的Activity中添加该视图. 下面通过一个具体的实例来说明如何创建用于绘图的画布. 1.创建一个名称为DrawView的类,继承android.view.View类,并添加构造方法和重写onDraw(Canvas canvas)方法,关键代码如下: pa