如何使圆角布局..?
我怎样才能做出圆角布局? 我想将圆角应用于我的LinearLayout
。
1:在drawables中定义layout_bg.xml :
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke android:width="3dp" android:color="#B1BCBE" />
<corners android:radius="10dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
2:将layout_bg.xml
作为背景添加到您的布局
android:background="@drawable/layout_bg"
下面是一个XML文件的副本,用于创建带有白色背景,黑色边框和圆角的可绘制对象:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffffff"/>
<stroke android:width="3dp"
android:color="#ff000000"
/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"
/>
<corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp" android:topRightRadius="7dp"/>
</shape>
将其保存为可绘制目录中的xml文件,像使用其资源名称(R.drawable.your_xml_name)一样使用任何可绘制背景(图标或资源文件)
对于API 21+,使用剪辑视图
圆角轮廓剪辑已添加到API 21中的View
类。请参阅此培训文档或此参考以获取更多信息。
这种内置功能使得圆角很容易实现。 它适用于任何视图或布局,并支持正确的剪辑。
以下是要做的事情:
android:background="@drawable/round_outline"
android:clipToOutline="true"
不幸的是,似乎有一个错误,并且此XML属性目前无法识别。 幸运的是,我们可以在Java中设置裁剪:
View.setClipToOutline(true)
它看起来像什么:
有关ImageViews的特别提示
setClipToOutline()
仅在视图的背景设置为可绘制形状时才有效。 如果此背景形状存在,则视图会将背景的轮廓视为裁剪和阴影目的的边框。
这意味着如果你想用setClipToOutline()
在ImageView上setClipToOutline()
,你的图片必须来自android:src
而不是android:background
(因为背景用于圆形)。 如果您必须使用背景设置您的图像而不是src,则可以使用此嵌套视图解决方法: