Android中使用Shape标签给BottomSheetDialog(其他View同理)设置圆角以及透明背景

一、drawable文件下创建shape文件

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
     <!-- rectangle表示为矩形 -->
    
    <!-- 填充的颜色 -->
    <solid android:color="@color/white" />
    
    <!-- 边框的颜色和粗细 -->
    <stroke
    android:width="1dp"
    android:color="@color/white" />
    
    <!-- android:radius 关键点,圆角的半径 -->
    <corners
      android:radius="2dp"    
      android:topLeftRadius="8dp"
      android:topRightRadius="8dp"
      android:bottomRightRadius="0dp"
      android:bottomLeftRadius="0dp" />
 
</shape>
  1. 在设置圆角时,圆角半径的大小必须大于1dp,否则是没有圆角效果的。
  2. 如果你想单独设置某几个角是圆角, 你必须首先声明radius 属性(必须大于1dp), 然后在其他四个角的属性中设置每个角的实际想要的半径大小, 不想圆角的设置为0dp

将该drawable文件设为你BottomSheetDialog布局的背景即可。成功则无需第二步,如果发现圆角和背景重叠了则继续第二步。

二、设置BottomSheetDialog的背景为透明

  1. style.xml文件夹下添加下面两个style
<style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
    <item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
</style>
<style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
    <item name="android:background">@android:color/transparent</item>
</style>
  1. 初始化BottomSheetDialog的时候指定上面的style
BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this,R.style.BottomSheetDialog);
bottomSheetDialog.setContentView(R.layout.bottom_sheet_dialog);
bottomSheetDialog.show();
发布了167 篇原创文章 · 获赞 230 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_39240270/article/details/103218465