我使用這個例子:https://github.com/galex/android-mapviewballoons谷歌地圖標記可點擊區域
我的問題是可點擊區域比標記本身更寬。例如,我的Google地圖標記是25x25,那麼可點擊區域最多可以擴展到70x70。這是重疊標記的一個大問題。
當我點擊箭頭的尖端時,即使點擊區域遠離標記,onTap也會被激活。
請幫幫我。謝謝。
我使用這個例子:https://github.com/galex/android-mapviewballoons谷歌地圖標記可點擊區域
我的問題是可點擊區域比標記本身更寬。例如,我的Google地圖標記是25x25,那麼可點擊區域最多可以擴展到70x70。這是重疊標記的一個大問題。
當我點擊箭頭的尖端時,即使點擊區域遠離標記,onTap也會被激活。
請幫幫我。謝謝。
爲了調試:
嘗試使用TouchDelegate
的視圖,您可以指定觸摸RECT對於給定的View
一個例子展示瞭如何使用TouchDelegate
:
public class TouchDelegateSample extends Activity {
Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.touch_delegate_view);
mButton = (Button)findViewById(R.id.delegated_button);
View parent = findViewById(R.id.touch_delegate_root);
// post a runnable to the parent view's message queue so its run
after
// the view is drawn
parent.post(new Runnable() {
@Override
public void run() {
Rect delegateArea = new Rect();
Button delegate = TouchDelegateSample.this.mButton;
delegate.getHitRect(delegateArea);
delegateArea.top -= 200;
TouchDelegate expandedArea = new TouchDelegate(delegateArea,
delegate);
// give the delegate to an ancestor of the view we're
delegating the
// area to
if (View.class.isInstance(delegate.getParent())) {
((View)delegate.getParent()).setTouchDelegate(expandedArea);
}
}
});
}
}
查看一個給定的生命點是否在物品標記的範圍內。 重寫以修改測試項目的方式。命中點是相對於標記的界限。默認實現只是檢查命中點是否在標記的可觸摸範圍內。
我認爲這不是。該代碼用於定位氣球覆蓋。 –
對於調試,您可以調用View.getHitRect()。我認爲這會有所幫助 – Reno
感謝您的回覆..標記不是視圖,而是覆蓋圖。請檢查MyItemizedOverlay.java。謝謝。 –
這是ItemizedOverlay
的默認行爲。對於大多數人的手指來說,25x25像素通常不是一個足夠的可觸摸區域。
如果您想修改測試覆蓋項目命中的方式,則應該覆蓋hitTest()
方法。
你可以舉個命中測試的例子嗎? – Jatin
你有沒有解決過這個問題? –