掌间无限—地图引擎

本文介绍了一款基于Android平台的地图引擎实现方案。通过自定义GameMap类,利用Canvas和Paint等组件,实现了地图单元的绘制功能。该方案支持从原始位图中裁剪并绘制指定的地图单元到屏幕上的指定位置。

       众多手机应用软件中,基于LBS(位置服务)的应用越来越火。android地理定位应用就显得尤为重要。写了一个地图引擎共享交流,以后做地图就方便了。

代码: 

package com.app.map;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;

public class GameMap {
	/**
	 * @author Administrator
	 * @id 图片单元号
	 * @Canvas canvas
	 * @Paint paint
	 * @Bitmap bitmap 原图
	 * @x 图片单元在屏幕上得x位置
	 * @y 图片单元在屏幕上得y位置
	 * @cellwidth 图片单元的宽
	 * @cellheight 图片单元的高
	 * */
	public void DrawMapTitle(int id, Canvas canvas, Paint paint, Bitmap bitmap,
			int x, int y,int cellWidth,int cellHeight) {
		id--;
		int CellWNum = bitmap.getWidth()/cellWidth;
		int countX = id %CellWNum;
		int countY = id/CellWNum;
		int bitmapX = countX* cellWidth;
		int bitmapY = countY * cellHeight;
		DrawClipImage(canvas, paint,bitmap, x,y, bitmapX, bitmapY, cellWidth, cellHeight);
	}
	private void DrawClipImage(Canvas canvas, Paint paint, Bitmap bitmap, int x,
			int y, int x_src, int y_src, int xp_src, int yp_src) {
           canvas.save();
           canvas.clipRect(x,y,x+xp_src,y+yp_src);
           canvas.drawBitmap(bitmap, x-x_src,y-y_src, paint);
           canvas.restore();
	}
}

加一个链接,可以下载:点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值