看板 AndroidDev 關於我們 聯絡資訊
想要做類似google map那樣的縮放,畫面上有許多錨點 隨著zoom in, zoom out的同時放大縮小錨點的icon 參考#1ECMxsU5應該可以套用到自製地圖上 自製圖片縮放的方式,猜想可以用imageView+ZoomControls 先設定好地圖座標範圍後,放上地圖,再讓使用者長按加入錨點 但是因為畫面的縮放後,不能取螢幕的座標為基準 得要參照縮放後的位置... 這點就讓人很頭大... 不知道版上先進有何想法@@? 打完這篇,想不到任何的關鍵字...<囧> ※ 編輯: MiaShopgirl 來自: 60.250.26.190 (03/02 16:25)
LaPass:就... 自己取螢幕基準點,然後換算成畫面座標點... 03/02 17:04
剛剛跟同事討論,好像也是這樣.. 不過螢幕左上角的位置,也要算進去才能拿到正確的座標吧....@_@ 但是經過縮放跟拖曳...要一直監聽手指的位置去計算螢幕左上角的點嘛!__! ├───────── 1000 ─────────┤ ┬┌──────────────────────┐ 地圖座標 ││(x,y) │ ││ │ 1000 fingerX ││←  圖  片  原  始  大  小  →│ ── = ── ││ │ 480 180 ││ ├──── 480 ────┤ │ ││ ┬┌────┬──────┐ │ ││ ││    │ │ │ ││ ││ │ │ │ 3000 fingerY ││ ││ │ │ │ ── = ── ││ ││ │ │ │ 800 200 3 │ 8 │ │ │ │ 0 │ 0 ├────┼ │ │ 0 │ 0 │ (fingerX,fingerY) │ │ 0 │ ││      │ │ ││ ││ │ │ ││ ││← 手 機 螢 幕 →│ │ ││ ││ │ │ ==========================下略========================== ※ 編輯: MiaShopgirl 來自: 60.250.26.190 (03/02 17:42)
tericky:有點看不懂你要做什麼 @@a 你的意思是說 你要讓圖片的位置 03/02 22:22
tericky:是由使用者自己標記上去的嗎? 03/02 22:23
對@@, 就是 讓使用者自由選擇他喜歡的點 讓他標記這樣 ※ 編輯: MiaShopgirl 來自: 119.77.134.167 (03/03 12:54)
tericky:不知道你有沒有做出來了 如果沒有我下班回家再做個範例 03/03 16:06
這樣很不好意思啊 囧rz t大有空的話可否提個點? 猜想硬著頭下去實做兩點縮放功能後應該就稍微懂了吧 雖然這一切都只是幻想 <囧> 真的寫不出來的話再麻煩您上陣就是(炸 ※ 編輯: MiaShopgirl 來自: 119.77.134.167 (03/03 17:21)
tericky:我好像誤會你的意思了 @@a 我再想想要怎麼做 03/04 01:38
目前參考Hello, Android, 3rd Edition的範例,單隻:http://goo.gl/P0yld 完整範例:http://media.pragprog.com/titles/eband3/code/eband3-code.zip 用ImageView.setOnTouchListener,拿的到手指座標(fingerX,fingerY) 但是很囧的事情是...我拿不到ImageView的座標(x,y)..(炸 layout的xml簡略為 <FrameLayout....> <ImageView android:id="@+id/imageWall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="backGround" android:scaleType="matrix" android:src="@drawable/sky" /> </FrameLayout> public class FreeMapActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { //設定layout, wallView.setOnTouchListener(onTouchLis); } private OnTouchListener onTouchLis = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent rawEvent) { Log.d(TAG, "getLeft:" + wallView.getDrawable().getBounds().left); Log.d(TAG, "getTop:" + wallView.getDrawable().getBounds().top); //計算手指位置&判定拖曳/縮放 } 怎麼拿都是0,該不會不能用imageView拿座標吧 〒△〒 ※ 編輯: MiaShopgirl 來自: 60.250.26.190 (03/07 12:32)
MiaShopgirl:來加個wallPosition(0.0),每次手指移動都update好了 03/07 14:55