热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

在Android中,虽然可以通过TextView或图片现实文本,但是在开发游戏,特别是开发RPG(角色)类游戏时,会包含很多文字,使用TextView和图片显示文本不太合适,这时,就需要通过绘制文本的
在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:
  

打开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


推荐阅读
  • 1.范例说明EditTextWidget设计的初衷是为了等待User输入而准备的,那么在User输入的同时,又该如何拦截所输入的文字呢?Android的多数Widget都有 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 我们在电视或者手机上开发的时候,经常会遇到如下情况,在屏幕上布局了多个TextView,ImageView,ImageBut ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • 四、连接屏幕流各位读者好!我们已经到了应用开发的一个重要阶段——连接屏幕。如您所知,我们在上一章 ... [详细]
  • 使用PyQt5 for Python gui开发笔记:实现可滚动标签
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了使用PyQt5forPythongui的可滚动标签相关的知识,希望对你有一定的参考价值。 ... [详细]
  • AndroidTextView跑马灯效果效果图TextView跑马灯继承TextView重写isFocused方法还有配置singline属性第一种方式:XML布局为:<?xmlversio ... [详细]
  • 转载至:http:blog.csdn.netlmj623565791articledetails24252901不过对原作进行了相关细节优化,所以才有此文..首先我们看一 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
  • 本文整理了Java中org.apache.pig.backend.executionengine.ExecException.<init>()方法的一些代码 ... [详细]
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有