Q
檢測位圖上的觸摸
9
A
回答
28
對我來說是偉大的你應該工作的東西,像這樣:
public boolean onTouchEvent(MotionEvent event){
int action = event.getAction();
int x = event.getX() // or getRawX();
int y = event.getY();
switch(action){
case MotionEvent.ACTION_DOWN:
if (x >= xOfYourBitmap && x < (xOfYourBitmap + yourBitmap.getWidth())
&& y >= yOfYourBitmap && y < (yOfYourBitmap + yourBitmap.getHeight())) {
//tada, if this is true, you've started your click inside your bitmap
}
break;
}
}
這是一個開始,但你需要處理case MotionEvent.ACTION_MOVE
和case MotionEvent.ACTION_UP
,以確保您妥善處理用戶輸入。每次用戶都會調用onTouchEvent
方法:放下手指,移動屏幕上的手指或擡起手指。每次事件攜帶手指所在的X和Y座標。例如,如果您想檢查是否有人在您的位圖內部點擊,您應該執行一些操作,例如設置一個布爾值,使觸摸在ACTION_DOWN位圖內開始,然後檢查ACTION_UP是否仍位於位圖內部。
3
史蒂夫, 谷歌有處理UI事件@http://developer.android.com/guide/topics/ui/ui-events.html一個偉大的文章和教程。這就是讓我開始和它:-)
0
這將檢測觸摸並檢查它是否不透明。如果你的位圖不是矩形,你需要這個。 myBitmap只是我使用的一個簡單的容器類。
private boolean clickOnBitmap(MyBitmap myBitmap, MotionEvent event) {
float xEnd = myBitmap.originX() + myBitmap.width();
float yEnd = myBitmap.originY() + myBitmap.height();;
if ((event.getX() >= myBitmap.originX() && event.getX() <= xEnd)
&& (event.getY() >= myBitmap.originY() && event.getY() <= yEnd)) {
int pixX = (int) (event.getX() - myBitmap.originX());
int pixY = (int) (event.getY() - myBitmap.originY());
if (!(myBitmap.getBitmap().getPixel(pixX, pixY) == 0)) {
return true;
} else {
return false;
}
}
return false;
}
這是完整
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (clickOnBitmap(dog, event)) {
Toast.makeText(getContext(), "dog", Toast.LENGTH_SHORT).show();
} else if (clickOnBitmap(mouse,event)) {
Toast.makeText(getContext(), "mouse", Toast.LENGTH_SHORT).show();
}
return true;
case MotionEvent.ACTION_OUTSIDE:
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
return true;
}
return false;
}
相關問題
- 1. 在UIScrollView上檢測觸摸位置?
- 2. 在UiScrollView上檢測觸摸位置
- 3. GLKit檢測觸摸位置
- 4. 檢測圖像上彩色斑點的觸摸(位圖)
- 5. 如何檢查位圖上的觸摸
- 6. 檢測子視圖上的觸摸
- 7. 在UIView上檢測觸摸
- 8. 在CCSprite上檢測觸摸
- 9. 在NSOpenGLView上檢測觸摸
- 10. 在webview上檢測觸摸
- 11. Sprite Kit檢測觸摸位置
- 12. 觸摸不檢測?
- 13. android檢測觸摸
- 14. android檢測觸摸
- 15. 檢測CAShapeLayer觸摸
- 16. 檢測觸摸UIButton
- 17. UINavigationItem:檢測觸摸
- 18. 觸摸後如何檢測觸摸
- 19. Android - 檢測電容式觸摸屏上的觸摸壓力?
- 20. 檢測觸摸並觸摸包含UIControls的視圖
- 21. 在圖像視圖中檢測觸摸
- 22. 檢測IPhone上的UIImageView觸摸
- 23. 如何檢測NSTextAttachment上的觸摸
- 24. 檢測iPhone上的特殊觸摸
- 25. 檢測UIWebview上的觸摸事件?
- 26. 檢測UILabel上的觸摸事件
- 27. 檢測UIView邊框上的觸摸
- 28. 如何檢測MPMoviePlayerViewController上的觸摸
- 29. 檢測部分觸摸上的UIButton
- 30. AndroidPlot:檢測點上的觸摸事件
我想用你的代碼,但不知道如何得到位圖的X和Y觸摸代碼。你能幫我嗎? – 2012-09-06 12:57:01
如果您要將位圖繪製到畫布上,則必須已知其X和Y值,因爲必須將這些值作爲參數傳遞給'canvas.drawBitmap'方法。 – 2012-09-12 17:01:32