0
A
回答
0
AFAIK由android設計的所有視圖都是矩形的。您可以擴展視圖類,在onSizeChanged
(使用實體部分和數學的邊界以及視圖的寬度和高度)中爲圖像定義閉合路徑,並覆蓋其onTouch
以僅響應落在上面定義的閉合路徑中的觸摸。所以最終你將能夠實現你想要的行爲。
0
儘管Virendra Singh的回答是正確的,但我覺得在一般情況下使用路徑可能太困難了。
要處理所有情況,您需要每像素測試。每像素測試繪製視圖並測試觸摸像素是否可點擊。代碼非常短:
public class BitmapButton extends Button {
private final Bitmap bitmap;
private final Canvas canvas;
public BitmapButton(Context context, AttributeSet attrs) {
super(context, attrs);
bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
}
public boolean onTouchEvent(MotionEvent event) {
bitmap.setPixel(0, 0, 0); // reset pixel
canvas.save();
canvas.translate(-event.getX(), -event.getY());
draw(canvas); // draw only the touched pixel
canvas.restore();
// pass touch events when the pixel is clickable
return Color.alpha(bitmap.getPixel(0, 0)) > 0 && super.onTouchEvent(event);
}
}
相關問題
- 1. 的Android按鈕背景狀態
- 2. Android:將圖像添加到具有形狀背景的按鈕
- 3. 的Android按鈕背景形狀:圓壓扁
- 4. Android:創建帶有背景圖像的圓形外觀按鈕
- 5. 把另一個按鈕的背景上的按鈕背景Xamarin
- 6. 創建一個帶背景和前景圖像的按鈕
- 7. 如何修改按鈕狀態的按鈕背景?
- 8. 我有一個按鈕,其背景我想要在Android
- 9. 如何讓按鈕背景像一個敬酒背景?
- 10. 如何更改gridview中的一個按鈕背景? - Android
- 11. Android中按鈕的背景?
- 12. 如何更改按鈕和背景之間的按鈕背景?
- 13. 如何在android中爲背景創建方形按鈕?
- 14. 改變按鈕背景按下狀態
- 15. Android按鈕背景問題
- 16. 如何使一個按鈕的研究背景圖像resonsive
- 17. 帶背景的按鈕,無光標
- 18. 帶透明背景的JavaFX按鈕
- 19. 帶有透明背景的3d按鈕
- 20. 安卓按鈕的背景形狀與陰影
- 21. JavaFX - 基於背景屬性獲取按鈕的形狀
- 22. 更改變焦按鈕的背景顏色和形狀,AChartEngine
- 23. 帶有圖形的WPF按鈕,用於按鈕的背景和內容
- 24. Android的使用形狀創建按鈕
- 25. 如何在Android中爲五個按鈕使用一個背景圖片?
- 26. 如何用SVG背景的倒數來填充一個形狀?
- 27. 模板化一個按鈕的背景
- 28. 如何在長時間按下按鈕的同時打開一個帶有其他按鈕的矩形按鈕?
- 29. Android:使用形狀可繪製的多個虛線背景
- 30. 如何使按鈕背景透明?