android平台上的sprite,tilelayer设计

Android 没有提供 javaMe 里面的 Sprite, TileLayer 等,但自己可以设计,为图形处理建立一个基本的框架,同时可以快速将 javaMe 上的应用移植到Android 平台上。这个框架依照 MIDP 中 javax.microedition.lcdui.game 包设计的Layer 类import android.graphics.Canvas;import android.graphics.Paint;public abstract class Layer {public abstract void paintCanvas canvas,Paint paint;public abstract void paintCanvas canvas,Paint paint,int x,int y;}Sprite 类import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;public class Sprite extends Layer{private int length 0;// 帧序列长度private int currentPosition 0;//当前帧序列下标private int[][] framesXY null;//各个帧序列在图片的坐标private int frameWidth 0;//帧的宽度private int frameHeight 0;//帧的高度private Bitmap bigFrames null;//大的图片private int cols 0;private int rows 0;private int PositionX 0;//精灵的X 坐标private int PositionY 0;//精灵的Y 坐标private int[] frameSequence null;//加入的帧序列private int sequencePosition 0;//加入的帧序列的显示下标public SpriteBitmap image,int frameWidth,int frameHeight{//初始化this.bigFrames image;this.frameWidth frameWidth;this.frameHeight frameHeight;framesXY initSpriteimage, frameWidth, frameHeight;this.length framesXY.length;}//初始化精灵private int[][] initSpriteBitmap bitmap,int frameWidth,int frameHeight{int imageWidth bitmap.getWidth;int imageHeight bitmap.getHeight;this.cols Math.roundimageWidth/frameWidth;//列数this.rows Math.roundimageHeight/frameHeight;//行数int[][] tempXYs new int[cols*rows][2];forint i0,k0;ilength-1{currentPosition 0;}}else{sequencePosition;ifsequencePositionframeSequence.length-1{sequencePosition 0;}currentPosition frameSequence[sequencePosition];}}//获得当前 帧序列的上一个 帧public void prevFrame{ifthis.frameSequencenull{currentPosition--;ifcurrentPosition0}//得到单 元格的宽度public int getCellWidth{return this.tileWidth;}//得到单 元格的高度public int getCellHeight{return this.tileHeight;}//得到图层 中单元格的列数public int getColumns{return this.cols;}//得到图层 中单元格的行数public int getRows{return this.rows;}//获得整 张地图的宽度public int getMapWidth{return this.cols*this.tileWidth;}//获得整 张地图的高度public int getMapHeight{return this.rows*this.tileHeight;}public void setPositionint x,int y{this.viewX x;this.viewY y;}public void paintCanvas canvas,Paint paint{forint i0;i0{Log.d“x,y“, ““i*this.tileWidth - this.viewX“,“j*this.tileHeight - this.viewY;Bitmap bitmap Bitmap.createBitmapditu,tileXY[id-1][0],tileXY[id-1][1],tileWidth,tileHeight;canvas.drawBitmapbitmap,i*this.tileWidth - this.viewX,j*this.tileHeight - this.viewY, paint;}else{}}}}public void paintCanvas canvas,Paint paint,int x,int y{this.viewX x;this.viewY y;forint i0;i0{Bitmap bitmap Bitmap.createBitmapditu,tileXY[id-1][0],tileXY[id-1][1],tileWidth,tileHeight;canvas.drawBitmapbitmap,i*this.tileWidth - this.viewX,j*this.tileHeight - this.viewY, paint;}else{}}}}}LayerManager 类import java.util.ArrayList;import android.graphics.Canvas;import android.graphics.Paint;public class LayerManager {// 定义图层 容器private ArrayList

android平台上的sprite,tilelayer设计,android平台上的sprite,tilelayer设计相关推荐

  1. ios android安全性分析,Android与iOS的对比分析及Android安全技术的设计与实现

    摘要: 近年来科技的发展和进步极大的推动了智能手机的飞速发展,手机功能的日益强大使人们对其依赖度显著上升.作为与人们生活密不可分通讯工具,手机安全的重要性不言而喻.现如今,随着手机网络的迅猛发展和形形 ...

  2. Android学习笔记(一) - 如果我们来设计Android

    大家应该都背过公式,对于背公式,大体上有这么几种做法: 1,死背. 2,看公式的证明,并看懂. 3,尝试自己证明公式,而后对照"标准"证明. 一般来说,对公式的记忆和使用:3 &g ...

  3. Jquery Mobile设计Android通讯录第二章

    本文是jQuery Mobile设计Android通讯录系统教程的第二篇,在上一篇教程中(http://publish.itpub.net/a2011/0517/1191/000001191561.s ...

  4. android产品设计,Android产品设计

    Android产品设计,我们深信,凝聚一群人,用心在一件事上,为客户创造价值,它必将赢得客户的足够尊重和信赖. Android产品设计, 随着Android平台的扩张,引发了Android人才荒,20 ...

  5. Android 系统性能优化(79)---提升Android应用的启动速度与设计

    提升Android应用的启动速度与设计 提升应用的启动速度与设计 这一部分主要写一写 应用启动白屏, 启动速度较慢,以及优化方案.本文一共分三个部分.搞定启动速度,让应用飞起来. 1. 常规的优化方案 ...

  6. android客户端设计,Android客户端设计.ppt

    Android客户端设计 图16 .android.score包下各文件说明 .android.score包存放所有的功能界面,处理各种业务逻辑,是"豹考通"客户端的核心,该包下所 ...

  7. android 类的设计,Android App的类响应式设计

    导言 根据google的官方显示Android 4.0以上的设备已经有34.2%,由于国内很多的手机都没机会用上google play市场,所以国内市场的情况,得看类似于友盟的季度报告才知道了.个人觉 ...

  8. 便签 java_基于安卓Android的便签笔记APP设计(Android studio)

    基于安卓Android的便签笔记APP设计(Android studio)(论文9000字,程序代码) 摘要:本文介绍了便签的发展史.基础操作流程以及便签的具体功能,提出了基于Android的便签AP ...

  9. android jsp界面设计,Android 4.0设计规范-UI博客精选

    在拜读和翻译了Android design设计指导后,对比Android 4.0与Android2.3及之前版本的app设计指导,总结了Android 4.0设计的10大改变: 1. 导航栏 (详见模 ...

最新文章

  1. AI之最——地平线创始人兼CEO余凯谈AI
  2. ESP8266 01S WIFI 网络
  3. 【翻译】VisualStudio11中的CSS编辑器改进(asp.net 4.5系列)-ScottGu
  4. 框架:Spring之Aware相关接口
  5. 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发
  6. JDK中的Atomic包中的类及使用
  7. CF1368G Shifting Dominoes(扫描线求矩阵的并集)
  8. 转hdmi_苹果本轻松接大屏,毕亚兹雷电接口转HDMI/VGA转换器评测
  9. 几时几分几秒怎么写_头总是一阵一阵眩晕是怎么回事?眩晕症该如何治疗?
  10. 3.7.3 - Basic String Operations
  11. 删除ftp服务器上文件夹的方法,删除ftp服务器文件夹
  12. sl400通过ac无法连接psk加密无线网络
  13. Layabox 1 layabox的项目文件以及项目配置
  14. 最好用的七大顶级 API 接口测试工具
  15. 超出本地计算机网络,超出本地计算机网络适配器卡的名称限制怎么解决?
  16. STC单片机 闪烁灯,LED流水灯 程序讲解
  17. omw-1.4压缩包下载
  18. 解决ThinkPad X200找不到无线网卡硬件的问题
  19. CSS 行高 line-height属性
  20. 有五万块钱,在农村养牛怎么样?能养多少头牛?

热门文章

  1. Leetcode 1222.可以攻击国王的皇后
  2. 统计学习三要素的思考
  3. TCP连接吞吐率和线路效率的总结
  4. 维纳滤波的详细讲解(同为小白,相互取暖)
  5. Markdown数学公式参考表
  6. 【不建议阅读】电脑上腾讯会议录屏:OBS
  7. python 使用 plt.savefig() 保存图片去除旁边的空白区域
  8. python : 使用 __future__ 的作用
  9. ubuntu + pycharm + anaconda + pyqt5 + tools 配置
  10. BZOJ 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头:统计 + 筛法【调和级数】