[英]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.