1. 程式人生 > >如何去掉自定義AlertDialog進行圓角化的時候,出現的陰影或者黑色邊角(親測有效)

如何去掉自定義AlertDialog進行圓角化的時候,出現的陰影或者黑色邊角(親測有效)

         這是在自己學習安卓的路上,第一進行將問題進行記錄,因為自己遇到這個問題的時候,百度了很多方法,但是都沒有達到想要的效果,經過自己很多的努力,最後終於實現了,所以想把這個記錄下來,方便自己和更多的人能解決遇到的這個問題。

         迴歸正題,當我們使用自定義的AlertDialog的時候,需要引用介面的佈局layout,大家都知道,一般的佈局的外觀都是矩形,而沒有圓角化的邊框,然而,在佈局引用了shape.xml進行圓角化後,就出現了下面的情況。

從上面可以很明顯的看到,雖然邊框出現了圓角化,但是卻出現陰影的問題,所以這是我們本來所不想實現的效果,那麼如何進行消除陰影,下面用程式碼來進行講解,可以根據自己要的效果進行相對應的修改。(程式碼是自己專案測試過的,目的就是幫助大家)

首先是自定義AlertDialog的佈局檔案,命名為playlist.xml


上面的只是一部分,我貼了關鍵的就是主的linearLayout那裡的background,需要設定成為你所需要邊角化的形式的xml,這裡我設定為了alertaddlist.xml,下面是程式碼.


除了,這些外,還要設定自定義AlertDialog的樣式,下面是程式碼


好了,上面就是關於佈局介面的一些關鍵程式碼,接下來就是正真如何解決陰影了。

  

上面就是程式碼實現的部分了,紅色框中的是必須要實現的,從上面的程式碼可以發現,這與之前我們的普通定義的差距就在於下面的那紅色框中的還有存在設定windowManaer的部分,其實,看到這就很容易理解了,因為本身安卓就存在一個預設的佈局,雖然我們是引用了自己寫的佈局,但是它無法把預設給覆蓋,這也就是為什麼會存在陰影,其實陰影就是因為兩個佈局存在了沒有完全覆蓋的原因,所以就通過程式碼來將預設的佈局,設定成為自定義AlertDialog的佈局大小,這樣就從而解決了陰影或者黑色邊框的問題。

   希望這些有用,我也會將自己遇到的問題,寫下來,共同進步。

  最後,貼個最後的效果圖。(佈局就是隨便寫了寫,如果有特別的需求的話,就好好的定義,我關鍵就是來說明如何實現自定義AlertDialog的圓角化)