Android如何设置Drawable背景透明以显示父View背景?
解决Android Layer-List背景不透明问题
你的layer-list代码中,第一个item使用了黑色纯色填充,这就是导致子View出现黑色背景、无法看到父View背景的原因。要实现完全透明的效果,只需要将黑色替换为透明色即可。
修改方案1:替换透明色保留原有结构
将第一个item的@color/black改为Android系统自带的透明色@android:color/transparent,或者自定义透明色值(如#00000000):
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle" > <solid android:color="@android:color/transparent" /> </shape> </item> <item android:left="2dp"> <shape android:shape="rectangle" > <solid android:color="@color/white" /> </shape> </item> </layer-list>
修改方案2:简化代码(推荐)
如果你的需求只是给白色矩形左侧留出2dp的透明间距,无需额外的底层shape,直接保留第二个item即可,未被白色矩形覆盖的区域默认就是透明的:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="2dp"> <shape android:shape="rectangle" > <solid android:color="@color/white" /> </shape> </item> </layer-list>
修改后,子View背景除了白色矩形区域外,其余部分完全透明,就能正常显示父View的背景了。
内容的提问来源于stack exchange,提问作者Patrick Renaud
相关产品推荐
相关产品推荐

