Android開發(fā)之底圖局部加載移動(dòng)的方法示例
本文實(shí)例講述了Android開發(fā)之底圖局部加載移動(dòng)的方法。分享給大家供大家參考,具體如下:
public class MapMgr {
public static MapMgr mapMgr = null;
private int map_num = 28;
private int b_x = 0;
private int b_y = 0;
private int width = 0;
private int height = 0;
private Bitmap bmpView = null;
//create by danielinbiti,前提,你圖片確實(shí)比屏幕大,如果不比屏幕大,下面注釋行修改一下即可。
public static void init(int width,int height){
if(mapMgr==null){
mapMgr = new MapMgr(width,height);
}
}
public static MapMgr getInstance(){
return mapMgr;
}
public MapMgr(int width,int height){
this.width = width;
this.height = height;
Bitmap bmp = 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);
}
public void logic(){
}
public void mapDown(){
Bitmap bmp = PicMgr.getInstance().getBackGroundBitmap();
if(b_y+height<bmp.getHeight()){
b_y = b_y + bmp.getHeight()/map_num;
if(b_y+height>bmp.getHeight()){
b_y = bmp.getHeight() - height;
}
}
bmpView = Bitmap.createBitmap(bmp, b_x, b_y, width, height);
}
public void mapUp(){
Bitmap bmp = 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);
}
public void mapLeft(){
Bitmap bmp = 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);
}
public void mapRight(){
Bitmap bmp = PicMgr.getInstance().getBackGroundBitmap();
if(b_x+width<bmp.getWidth()){
b_x = b_x + bmp.getWidth()/map_num;
if(b_x+width>bmp.getWidth()){
b_x = bmp.getHeight() - width;
}
}
bmpView = Bitmap.createBitmap(bmp, b_x, b_y, width, height);
}
public void draw(Canvas canvas){
Paint paint = new Paint();
if(bmpView!=null){
canvas.drawBitmap(bmpView,0, 0, paint);
}
}
}
調(diào)用
public void onKeyDownDeal(int keyCode){
if(keyCode==KeyEvent.KEYCODE_DPAD_UP){
MapMgr.getInstance().mapUp();
}else if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN){
MapMgr.getInstance().mapDown();
}else if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){
MapMgr.getInstance().mapLeft();
}else if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){
MapMgr.getInstance().mapRight();
}
}
然后使用線程調(diào)用draw刷新即可。
對(duì)于觸摸移動(dòng)只是坐標(biāo)計(jì)算方式不同,其它都類似。另外擴(kuò)充到GIS等,可以根據(jù)小圖片粘貼實(shí)現(xiàn)局部加載內(nèi)容。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- android異步加載圖片并緩存到本地實(shí)現(xiàn)方法
- Android加載大分辨率圖片到手機(jī)內(nèi)存中的實(shí)例方法
- Android實(shí)現(xiàn)加載廣告圖片和倒計(jì)時(shí)的開屏布局
- Android中自定義加載樣式圖片的具體實(shí)現(xiàn)
- Android 異步加載圖片分析總結(jié)
- Android開發(fā)之加載圖片的方法
- Android 異步加載圖片的實(shí)例代碼
- Android使用控件ImageView加載圖片的方法
- Android Glide圖片加載(加載監(jiān)聽、加載動(dòng)畫)
- Android實(shí)現(xiàn)Listview異步加載網(wǎng)絡(luò)圖片并動(dòng)態(tài)更新的方法
相關(guān)文章
快速關(guān)閉android studio的自動(dòng)保存功能教程
這篇文章主要介紹了快速關(guān)閉android studio的自動(dòng)保存功能教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Android中DrawerLayout+ViewPager滑動(dòng)沖突的解決方法
這篇文章主要為大家詳細(xì)介紹了Android中DrawerLayout+ViewPager滑動(dòng)沖突的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Android實(shí)現(xiàn)點(diǎn)擊AlertDialog上按鈕時(shí)不關(guān)閉對(duì)話框的方法
這篇文章主要介紹了Android實(shí)現(xiàn)點(diǎn)擊AlertDialog上按鈕時(shí)不關(guān)閉對(duì)話框的方法,涉及設(shè)置監(jiān)聽的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
android實(shí)現(xiàn)多圖文分享朋友圈功能
本文主要介紹android調(diào)用系統(tǒng)分享實(shí)現(xiàn)朋友圈同時(shí)分享文字和圖片,圖片還可以多圖添加分享的功能。2017-11-11
Android package屬性、package name和Application ID三者的聯(lián)系及區(qū)別
這篇文章主要介紹了Android package屬性、package name和Application ID三者的聯(lián)系及區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-12-12
Android實(shí)現(xiàn)實(shí)時(shí)滑動(dòng)ViewPager的2種方式
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)實(shí)時(shí)滑動(dòng)ViewPager的2種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Android Studio下添加assets目錄的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狝ndroid Studio下添加assets目錄的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
Android 實(shí)現(xiàn)兩個(gè)Activity跳轉(zhuǎn)實(shí)例
本文主要介紹Android 多個(gè)Activity相互之間的跳轉(zhuǎn),認(rèn)識(shí)Activity生命周期,在做Android編程的時(shí)候用處很大,希望能幫助有需要的小伙伴2016-07-07

