Android开发之底图局部加载移动的方法示例
本文实例讲述了Android开发之底图局部加载移动的方法。分享给大家供大家参考,具体如下:
publicclassMapMgr{
publicstaticMapMgrmapMgr=null;
privateintmap_num=28;
privateintb_x=0;
privateintb_y=0;
privateintwidth=0;
privateintheight=0;
privateBitmapbmpView=null;
//createbydanielinbiti,前提,你图片确实比屏幕大,如果不比屏幕大,下面注释行修改一下即可。
publicstaticvoidinit(intwidth,intheight){
if(mapMgr==null){
mapMgr=newMapMgr(width,height);
}
}
publicstaticMapMgrgetInstance(){
returnmapMgr;
}
publicMapMgr(intwidth,intheight){
this.width=width;
this.height=height;
Bitmapbmp=PicMgr.getInstance().getBackGroundBitmap();
b_x=(bmp.getWidth()-width)/2;//保证图片比屏幕大
b_y=(bmp.getHeight()-height)/2;
bmpView=Bitmap.createBitmap(bmp,b_x,b_y,width,height);
}
publicvoidlogic(){
}
publicvoidmapDown(){
Bitmapbmp=PicMgr.getInstance().getBackGroundBitmap();
if(b_y+heightbmp.getHeight()){
b_y=bmp.getHeight()-height;
}
}
bmpView=Bitmap.createBitmap(bmp,b_x,b_y,width,height);
}
publicvoidmapUp(){
Bitmapbmp=PicMgr.getInstance().getBackGroundBitmap();
if(b_y>0){
b_y=b_y-bmp.getHeight()/map_num;
if(b_y<0){
b_y=0;
}
}
bmpView=Bitmap.createBitmap(bmp,b_x,b_y,width,height);
}
publicvoidmapLeft(){
Bitmapbmp=PicMgr.getInstance().getBackGroundBitmap();
if(b_x>0){
b_x=b_x-bmp.getWidth()/map_num;
if(b_x<0){
b_x=0;
}
}
bmpView=Bitmap.createBitmap(bmp,b_x,b_y,width,height);
}
publicvoidmapRight(){
Bitmapbmp=PicMgr.getInstance().getBackGroundBitmap();
if(b_x+widthbmp.getWidth()){
b_x=bmp.getHeight()-width;
}
}
bmpView=Bitmap.createBitmap(bmp,b_x,b_y,width,height);
}
publicvoiddraw(Canvascanvas){
Paintpaint=newPaint();
if(bmpView!=null){
canvas.drawBitmap(bmpView,0,0,paint);
}
}
}
调用
publicvoidonKeyDownDeal(intkeyCode){
if(keyCode==KeyEvent.KEYCODE_DPAD_UP){
MapMgr.getInstance().mapUp();
}elseif(keyCode==KeyEvent.KEYCODE_DPAD_DOWN){
MapMgr.getInstance().mapDown();
}elseif(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){
MapMgr.getInstance().mapLeft();
}elseif(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){
MapMgr.getInstance().mapRight();
}
}
然后使用线程调用draw刷新即可。
对于触摸移动只是坐标计算方式不同,其它都类似。另外扩充到GIS等,可以根据小图片粘贴实现局部加载内容。
希望本文所述对大家Android程序设计有所帮助。