如何制作带有圆角的布局..?

11 浏览
0 Comments

如何制作带有圆角的布局..?

如何制作一个具有圆角的布局?我想将圆角应用到我的LinearLayout上。

admin 更改状态以发布 2023年5月21日
0
0 Comments

对于API 21以上版本,请使用剪裁视图

在API 21中,View类中新增了圆形轮廓剪裁功能。有关详细信息,请参见此培训文档或此参考文档

该内置功能使得实现圆角非常容易。它适用于任何视图或布局,并支持适当的剪裁。

下面是具体步骤:

  • 创建一个圆形形状drawable,并将其设置为视图的背景:android:background="@drawable/round_outline"
  • 在代码中剪裁为轮廓:setClipToOutline(true)

文档曾经说过,您可以在XML中设置android:clipToOutline="true",但是这个bug现在终于解决了,文档现在正确地指出,您只能在代码中这样做。

它是什么样子的:

examples with and without clipToOutline

关于ImageView的特别说明

setClipToOutline()仅在视图的背景设置为形状drawable时才起作用。如果存在此背景形状,则视图将把背景的轮廓视为剪裁和投影的边界。

这意味着,如果您希望通过setClipToOutline()来使ImageView的角变成圆形,则您的图像必须来自于android:src而不是android:background(因为背景用于圆形形状)。如果您必须使用背景来设置图片而不是src,则可以使用这个嵌套视图的解决方案:

  • 创建一个带有形状可绘制背景的外层布局
  • 将该布局包裹在没有填充的 ImageView 周围
  • ImageView(包括布局中的任何其他内容)现在将被裁剪为外部布局的圆形形状。
0
0 Comments

1:在drawable文件夹中定义 layout_bg.xml



    
    
    
    

2:将 layout_bg.xml 添加为你的布局的背景

android:background="@drawable/layout_bg"

0