这是在自己学习安卓的路上,第一进行将问题进行记录,因为自己遇到这个问题的时候,百度了很多方法,但是都没有达到想要的效果,经过自己很多的努力,最后终于实现了,所以想把这个记录下来,方便自己和更多的人能解决遇到的这个问题。
回归正题,当我们使用自定义的AlertDialog的时候,需要引用界面的布局layout,大家都知道,一般的布局的外观都是矩形,而没有圆角化的边框,然而,在布局引用了shape.xml进行圆角化后,就出现了下面的情况。
从上面可以很明显的看到,虽然边框出现了圆角化,但是却出现阴影的问题,所以这是我们本来所不想实现的效果,那么如何进行消除阴影,下面用代码来进行讲解,可以根据自己要的效果进行相对应的修改。(代码是自己项目测试过的,目的就是帮助大家)
首先是自定义AlertDialog的布局文件,命名为playlist.xml
上面的只是一部分,我贴了关键的就是主的linearLayout那里的background,需要设置成为你所需要边角化的形式的xml,这里我设置为了alertaddlist.xml,下面是代码.
除了,这些外,还要设置自定义AlertDialog的样式,下面是代码
好了,上面就是关于布局界面的一些关键代码,接下来就是正真如何解决阴影了。
上面就是代码实现的部分了,红色框中的是必须要实现的,从上面的代码可以发现,这与之前我们的普通定义的差距就在于下面的那红色框中的还有存在设置windowManaer的部分,其实,看到这就很容易理解了,因为本身安卓就存在一个默认的布局,虽然我们是引用了自己写的布局,但是它无法把默认给覆盖,这也就是为什么会存在阴影,其实阴影就是因为两个布局存在了没有完全覆盖的原因,所以就通过代码来将默认的布局,设置成为自定义AlertDialog的布局大小,这样就从而解决了阴影或者黑色边框的问题。
希望这些有用,我也会将自己遇到的问题,写下来,共同进步。
最后,贴个最后的效果图。(布局就是随便写了写,如果有特别的需求的话,就好好的定义,我关键就是来说明如何实现自定义AlertDialog的圆角化)