我繼承了一個具有挑戰性目標的 Android Studio 專案。基本上,這個想法是應用程式顯示一個影像,它是建筑物(博物館)的地圖。當用戶點擊一個房間時,應用程式會顯示該房間的名稱,然后他們有其他一些選項來做事。只要我們將應用程式設計為在單個設備上使用并且不打算在其他任何設備上使用它,這就會很好地作業,這當然很愚蠢。我已經能夠讓地圖影像對不同尺寸的螢屏做出反應就好了。我遇到的問題是按鈕,它們是在設計程序中繪制在地圖的某些部分上的。
我使用了 ConstraintLayout,但它沒有做我需要的。一方面,按鈕并沒有像我期望的那樣移動。例如,當我在平板電腦上運行應用程式時,影像可以很好地調整大小,但按鈕都聚集在一個象限內;他們并沒有真正按照我預期的方式調整影像大小。
第二個問題是按鈕大小。即使按鈕在較大的螢屏上確實移動了(讓我們假設它們確實移動了),按鈕本身也不會調整大小。我已經嘗試過 WRAP_CONTENT,但是即使在設計中它的大小也比我想要的大。將其設定為 0dp 只會生成一個 1 像素的按鈕(不知道為什么)。在回應不同的螢屏尺寸時,是否有某種方法可以使按鈕大小與影像增長成比例增長?換句話說,在布局設計中,我希望能夠指定按鈕尺寸,以便它們覆寫我想要的地圖影像的確切部分,但是當影像增大時,我希望按鈕按比例增大,以便它主要與它對應的房間對齊。
我已經閱讀了有關使用帶有彩色區域的疊加影像作為解決方法的內容,但這在某些房間影像中不切實際,因為可點擊區域超過 20 個。
我希望這個解釋足夠清楚。在此先感謝您的幫助。
uj5u.com熱心網友回復:
在您的職位上,我建議您查看具有您需要的功能的庫,例如AndroidImageMap。如有必要,您可以下載它們,將它們作為模塊插入到您的專案中并更改代碼。還要檢查這些問題,我認為它會更清楚:影像的可點擊區域,如何使影像中的某些區域在android中可點擊
uj5u.com熱心網友回復:
這并不難實作,你需要重寫onMeasure在具有影像中的背景父ViewGroup中,并且知道它的original size你get the scale to the new dimension,你想適應,那么你multiply all coordinates通過它:背景影像和所有的按鈕l,t,r,b在AbsoluteLayout作品以類似的方式
我自己也更喜歡覆寫onDraw和onTouchEvent繪制/單擊同一組件中的按鈕,但您可以使用 android.Button
如果您添加代碼,我可以提供更多幫助
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/340663.html
