推 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