教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

Android手机游戏开发知识点总结(3)

来源:网络收集 时间:2026-04-01
导读: canvas.drawCircle(60,60,50,paint);//绘制圆形 RectF rectF = new RectF();//绘制椭圆 rectF.bottom=80; rectF.left=160; rectF.right= 300; rectF.top = 10; canvas.drawOval(rectF, paint); Path path = new Pat

canvas.drawCircle(60,60,50,paint);//绘制圆形

RectF rectF = new RectF();//绘制椭圆 rectF.bottom=80; rectF.left=160; rectF.right= 300; rectF.top = 10;

canvas.drawOval(rectF, paint);

Path path = new Path();//绘制多边形 path.moveTo(10, 90); path.lineTo(80, 100); path.lineTo(70,150); path.lineTo(10, 200); path.close();//封闭多边形 canvas.drawPath(path, paint);

paint.setStrokeWidth(5);

canvas.drawLine(50,50,300,200, paint); }

paint.setStyle(Paint.Style.FILL);{//设置画笔为实心 paint.setColor(Color.YELLOW);

canvas.drawRect(20,250,300,300, paint); }

shapeDrawableView.DrawShape(canvas);//绘制另一View里的图形到本View中来 }

public void run() {

while(!Thread.currentThread().isInterrupted()){ try{

Thread.sleep(200); }catch(Exception e){

Thread.currentThread().interrupt(); }

postInvalidate();//直接在线程中更新

} } } /**

*Android中可以通过ShapeDrawable来绘制图像。可以通过getPaint方法得到Paint对象,

setBounds 此方法可设置图形显示的区域

通过ShapeDrawable的Draw方法将图形画到屏幕上 */

public class ShapeDrawableView extends View{ ShapeDrawable shapeDrawable; Paint paint;

public ShapeDrawableView(Context context) { super(context); }

public void DrawShape(Canvas canvas){

shapeDrawable = new ShapeDrawable();//------用ShapeDrawable绘图必须要实例化对象

paint=shapeDrawable.getPaint();//得到画笔 paint.setColor(Color.GREEN);//设置画笔颜色 Rect bounds =new Rect(10,310,80,390);//绘制矩形

shapeDrawable.setBounds(bounds);//------用ShapeDrawable绘图必须要使用SetBounds显示区域

shapeDrawable.draw(canvas);//--------用ShapeDrawable绘图必须要使用draw()使图像显示到屏幕上 //另一种写法

/* 实例化ShapeDrawable对象并说明是绘制一个椭圆 */ shapeDrawable = new ShapeDrawable(new OvalShape()); //得到画笔paint对象并设置其颜色

shapeDrawable.getPaint().setColor(Color.GREEN); /* 设置图像显示的区域 */

shapeDrawable.setBounds(70, 250, 150, 280); /* 绘制图像 */

shapeDrawable.draw(canvas);

//以下为绘制多边形 Path path1 = new Path(); /*设置多边形的点*/

path1.moveTo(150+5, 80+80-50); path1.lineTo(150+45, 80+80-50); path1.lineTo(150+30, 80+120-50); path1.lineTo(150+20, 80+120-50); /* 使这些点构成封闭的多边形 */ path1.close();

//PathShape后面两个参数分别是宽度和高度

shapeDrawable = new ShapeDrawable(new PathShape(path1,150,150)); //得到画笔paint对象并设置其颜色

shapeDrawable.getPaint().setColor(Color.BLUE); /* 设置图像显示的区域 */

shapeDrawable.setBounds(100, 170, 200, 280); /* 绘制图像 */

shapeDrawable.draw(canvas); } }

第五部分 字符串绘制

Android中提供了drawText方法来绘制字符串,在绘制执法串之前需要设置画笔对象,包括字符串的尺寸,颜色等属性。使用FontMetrics来规划字体属性 可以用getFontMetrics方法来获得系统字体的相关内容。 setTextSize 设置字符串的尺寸 setARGB 设置颜色

getTextWidths 取得字符串宽度

setFlags(Paint.ANTI_ALIAS_FLAG) 消除锯齿 measureText 得到字符串宽度 得到字符串高度可用:

FontMetrics fontMetrics = paint.getFontMetrics();

textselfHeight = (int)Math.ceil(fontMetrics.descent - fontMetrics.top)+2;//得到文字的高度

textPageLineNum = textHeight/textselfHeight;//每一页的行数 = 绘制区域的高度/文字本身的高度

下例实现了文本翻页,换行。

* 实现文字自动换行 * 自动翻页

public class TextUtil{

int m_iTextPosX; //绘制的x点 int m_iTextPosY; //绘制的y点 int m_iTextWidth; //绘制宽度 int m_iTextHeight; //绘制高度 int m_iFontHeight; //字体高度

int m_ipageLineNum; //每一页显示的行数 int m_iTextBGColor; // 背景颜色 int m_iTextColor; // 字体颜色 int m_iAlpha; //Alpha值

int m_iRealLine; // 字符串真实的行数 int m_iCurLine; //当前行

String m_strText; Vector m_String; Paint m_paint; int m_iTextSize; public TextUtil(){ m_paint = new Paint(); m_String = new Vector(); }

public TextUtil(String strText, int x, int y, int w, int h, int bgcolor, int txetcolor, int a, int iTextSize){ m_paint = new Paint(); m_String = new Vector();

m_strText = strText; m_iTextPosX = x; m_iTextPosY = y; m_iTextWidth = w; m_iTextHeight = h;

m_iTextBGColor = bgcolor; m_iTextColor = txetcolor; m_iTextSize = iTextSize; m_iAlpha = a; } /** * 初始化

* @param strText 要显示的字符串 * @param x x * @param y y * @param w w * @param h h

* @param bgcolor 背景颜色 * @param txetcolor 文字的颜色 * @param a Alpha

* @param iTextSize 字体大小 */

public void InitText(String strText, int x, int y, int w, int h, int bgcolor, int txetcolor, int a, int iTextSize){ m_iCurLine = 0; m_ipageLineNum = 0; m_iRealLine = 0; m_strText = \m_iTextPosX = 0; m_iTextPosY = 0; m_iTextWidth = 0; m_iTextHeight = 0; m_iTextBGColor = 0; m_iTextColor = 0; m_iTextSize = 0; m_iAlpha = 0; m_String.clear();

…… 此处隐藏:2097字,全部文档内容请下载后查看。喜欢就下载吧 ……
Android手机游戏开发知识点总结(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/438798.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)