2011-11-08 78 views

回答

-1

爲了調試:

嘗試使用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); 
     } 
     } 
    }); 
    } 
} 

hitTest()

查看一個給定的生命點是否在物品標記的範圍內。 重寫以修改測試項目的方式。命中點是相對於標記的界限。默認實現只是檢查命中點是否在標記的可觸摸範圍內。

+0

我認爲這不是。該代碼用於定位氣球覆蓋。 –

+0

對於調試,您可以調用View.getHitRect()。我認爲這會有所幫助 – Reno

+0

感謝您的回覆..標記不是視圖,而是覆蓋圖。請檢查MyItemizedOverlay.java。謝謝。 –

1

這是ItemizedOverlay的默認行爲。對於大多數人的手指來說,25x25像素通常不是一個足夠的可觸摸區域。

如果您想修改測試覆蓋項目命中的方式,則應該覆蓋hitTest()方法。

+2

你可以舉個命中測試的例子嗎? – Jatin