如何使圆角布局..?

我怎样才能做出圆角布局? 我想将圆角应用于我的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中设置裁剪:

  • 在你的activity或fragment中: View.setClipToOutline(true)
  • 它看起来像什么:

    在这里输入图像描述

    有关ImageViews的特别提示

    setClipToOutline()仅在视图的背景设置为可绘制形状时才有效。 如果此背景形状存在,则视图会将背景的轮廓视为裁剪和阴影目的的边框。

    这意味着如果你想用setClipToOutline()在ImageView上setClipToOutline() ,你的图片必须来自android:src而不是android:background (因为背景用于圆形)。 如果您必须使用背景设置您的图像而不是src,则可以使用此嵌套视图解决方法:

  • 创建一个外部布局,其背景设置为可绘制的形状
  • 将这种布局包裹在ImageView中(没有填充)
  • ImageView(包括布局中的其他任何内容)现在将被剪裁到外部布局的圆形形状。
  • 链接地址: http://www.djcxy.com/p/31419.html

    上一篇: How to make layout with rounded corners..?

    下一篇: How to make the corners of a button round?