簡體   English   中英

Android:我可以創建一個不是矩形的視圖/畫布,但是例如圓形嗎?

[英]Android: can I create a view/canvas that is not rectangular, but e.g. round?

我有一個圓形的視圖,懸浮在上面( - >在z軸方向從屏幕出來)的主要內容。 當有人點擊屏幕時,我想要選擇主要內容,或者當它覆蓋主視圖時,視圖懸停在上方。

到目前為止完美無缺。 我在透明帆布上有一個圓形物品。 這意味着您可以看到該圓圈之外的所有背景。 但是,您無法選擇它,因為它仍然是懸停的畫布,只有透明的顏料。

現在我想知道,要解決這個問題,是否有可能使視圖/畫布本身呈圓形?


更新

我添加了一個圖像,以便更好地解釋我試圖實現的目標。 替代文字

據我所知 - 這是不可能的。 我已經在git.kernel.org檢查了View.java的來源,它基於Rect類 - rects定義位置,大小,區域以使其無效等。(“視圖的幾何形狀是矩形的幾何形狀。” - 來自View.java中的注釋)

至於Canvas類 - 它通常構造在Bitmap或GL上。 Bitmap絕對是一個矩形(矩陣),因此canvas似乎也代表了一個矩形。 如果使用GL,則指定視口(也是矩形)。

這似乎是最明顯的方法來檢查傳遞給你的onTouch()方法的坐標是否適合你的區域,如果沒有,則返回false。 然后事件將傳遞給下面的視圖,它應該處理事件。

可能與原始提問者不相關,但對於仍在尋找的任何人來說,看起來這將添加到L: https//developer.android.com/preview/material/views-shadows.html#clip View.setClipToOutline方法允許您將視圖剪切為矩形,圓形或圓形矩形可繪制的形狀。

您需要指定Android選擇器以避免默認的懸停圖像。

暫無
暫無

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

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