簡體   English   中英

Android-如何使移動屏幕上的對象擴展Button

[英]Android-How to make moving onscreen objects extend Button

在我正在開發的應用程序中,我有一個擴展表面視圖的類,另一個用於處理所有計算的類,以確定應在屏幕上繪制對象的位置和時間。 現在我有一種hacky方式來注冊屏幕點擊,每次點擊都會解析對象列表,最近的對象會點擊。 當屏幕上只有3個或4個對象但是我有更多點擊注冊錯誤的對象時,這種方法有效。

我想做的是讓屏幕上的對象擴展按鈕類,這樣我就可以在單擊時將MotionEvent傳遞給它們。 但是由於我所擁有的課程的設置方式,目前對我如何做到這一點有點困惑。

有沒有人知道任何有關擴展按鈕類以用於移動屏幕對象的教程?

如果我理解正確,您正在嘗試確定哪些對象被點擊了屏幕?

我知道這不是你要求的,但是當我實現過去的自定義視圖時,我通常會像這樣處理點擊檢測:

我得到了你想要點擊的對象的x和y坐標。 在SurfaceView類中的onTouchEvent(MotionEvent事件)方法中,使用一些if語句檢查單擊的x和y是否在對象的邊界內。

這里有一些代碼可以更好地說明我在說什么:

@Override
public boolean onTouchEvent(MotionEvent event) 
{
    // If the user touches the space occupied by object1
    if(event.getAction() == MotionEvent.ACTION_DOWN 
            && event.getX() <= object1.xPosition + object1.width 
            && event.getX() >= object1.xPosition
            && event.getY() >= object1.yPosition 
            && event.getY() < object1.yPosition + object1.height)
    {
            // The click was in the bounds of object1's current location
        object1.doSomething();
    }
    // ......
}

希望這是有道理的,有點幫助。

我認為你有點混合。 Button通常用於布局(xml布局的東西)。 當您使用表面視圖時,您(很可能)需要實現自己的“按鈕”。 但是,可能只是在表面視圖頂部覆蓋一個框架視圖並將按鈕放在該視圖上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM