Android手机游戏开发知识点总结(4)
SetText(strText); SetRect(x, y, w, h); SetBGColor(bgcolor); SetTextColor(txetcolor); SetFontSize(iTextSize); SetAlpha(a); SetPaint(); GetTextIfon(); } /**
* 设置Alpha * @param a Alpha值 */
public void SetAlpha(int a){ m_iAlpha = a; } /**
* 对Paint属性的设置 */
public void SetPaint(){
m_paint.setARGB(m_iAlpha, Color.red(m_iTextColor), Color.green(m_iTextColor), Color.blue(m_iTextColor)); m_paint.setTextSize(m_iTextSize); } /**
* 设置字体尺寸 * @param iTextSize */
public void SetFontSize(int iTextSize){ m_iTextSize = iTextSize; } /**
* 设置显示文本的区域 * @param x * @param y
* @param w * @param h */
public void SetRect(int x, int y, int w, int h){ m_iTextPosX = x; m_iTextPosY = y; m_iTextWidth = w; m_iTextHeight = h; } /**
* 设置背景颜色 * @param bgcolor */
public void SetBGColor(int bgcolor){ m_iTextBGColor = bgcolor; } /**
* 设置字体颜色 * @param txetcolor */
public void SetTextColor(int txetcolor){ m_iTextColor = txetcolor; } /**
* 色绘制要显示的字符串 * @param strText */
public void SetText(String strText){ m_strText = strText; } /**
* 得到字符串的信息 * 包括:行数、页数等信息 * 内部调用 */
public void GetTextIfon(){ char ch; int w = 0; int istart = 0;
FontMetrics fm = m_paint.getFontMetrics();
m_iFontHeight = (int) Math.ceil(fm.descent - fm.top) + 2; m_ipageLineNum = m_iTextHeight / m_iFontHeight; for (int i = 0; i < m_strText.length(); i++){ ch = m_strText.charAt(i); float[] widths = new float[1]; String srt = String.valueOf(ch); m_paint.getTextWidths(srt, widths); if (ch == '\\n'){ m_iRealLine++;
m_String.addElement(m_strText.substring(istart, i)); istart = i + 1; w = 0; }else{
w += (int) (Math.ceil(widths[0])); if (w > m_iTextWidth){ m_iRealLine++;
m_String.addElement(m_strText.substring(istart, i)); istart = i; i--; w = 0; }else{
if (i == (m_strText.length() - 1)){ m_iRealLine++;
m_String.addElement(m_strText.substring(istart, m_strText.length())); } } } } } /**
* 绘制字符串 * @param canvas */
public void DrawText(Canvas canvas){
for (int i = m_iCurLine, j = 0; i < m_iRealLine; i++, j++){ if (j > m_ipageLineNum){ break; }
canvas.drawText((String) (m_String.elementAt(i)), m_iTextPosX, m_iTextPosY + m_iFontHeight * j, m_paint); } } /**
* 翻页等按键处理 * @param keyCode * @param event * @return */
public boolean KeyDown(int keyCode, KeyEvent event){ if (keyCode == KeyEvent.KEYCODE_DPAD_UP){ if (m_iCurLine > 0){ m_iCurLine--; }
}else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN){ if ((m_iCurLine + m_ipageLineNum) < (m_iRealLine - 1)){ m_iCurLine++; } }
return false; } }
public class GameView extends View implements Runnable{ /* 声明Paint对象 */ private Paint mPaint = null; private int mICount = 0;
/* 声明TextUtil对象 */ private TextUtil mTextUtil = null; public GameView(Context context){ super(context); /* 构建对象 */ mPaint = new Paint();
String string = \测试自动换行\\n\\n设置文字自动换行abcdefgh\\niklmnopqrst换行123347465\\n43756245Android\\n设置文字自动换行abcdefgh\\n iklmnopqrst换行123347465\\n43756245Android\ /* 实例化TextUtil */
mTextUtil = new TextUtil(string,5,50,300,80,0x0,0xffffff,255,16); /* 初始化TextUtil */
mTextUtil.InitText(string,5,150,300,80,0x0,0xffffff,255,16); /* 开启线程 */
new Thread(this).start(); }
public void onDraw(Canvas canvas){ super.onDraw(canvas); /* 设置背景颜色 */
canvas.drawColor(Color.BLACK); mPaint.setAntiAlias(true); if ( mICount < 100 ){ mICount++; }
mPaint.setColor(Color.RED);
canvas.drawText(\装在进度:\/* 绘制TextUtil:实现自动换行 */ mTextUtil.DrawText(canvas); }
// 触笔事件
public boolean onTouchEvent(MotionEvent event){ return true; }
// 按键按下事件
public boolean onKeyDown(int keyCode, KeyEvent event){
…… 此处隐藏:1233字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




