linearlayout 圆角
时间: 2024-10-10 10:06:02 浏览: 32
LinearLayout 是 Android 中的一个布局组件,它默认是没有圆角的,其外观是直角边框。如果你想让 LinearLayout 的边缘呈现圆角,你可以通过自定义视图或使用 View 的 `setClipToPadding` 和 `setPadding` 方法以及 `shape` 文件来实现。
1. 自定义视图:你可以创建一个新的 View 类,并覆盖 `onDraw()` 方法,在里面绘制带有圆角的矩形。例如:
```java
public class RoundedLinearLayout extends LinearLayout {
private float cornerRadius;
public RoundedLinearLayout(Context context) {
super(context);
}
// ...其他构造函数
public void setCornerRadius(float cornerRadius) {
this.cornerRadius = cornerRadius;
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (cornerRadius > 0) {
canvas.clipRect(getDrawingRect(), Region.Op.REPLACE);
canvas.drawRoundRect(getMeasuredRect(), cornerRadius, cornerRadius, paint);
}
}
}
```
2. 使用 shape 文件:你可以在 res/drawable 目录下创建一个 shape 文件 (.xml),如 `rounded_layout.xml`,然后在布局文件中引用这个 shape 作为 background:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="10dp" /> <!-- 设置圆角 -->
<solid android:color="@android:color/white" /> <!-- 设置背景颜色 -->
</shape>
```
将此 shape 引入到需要圆角的 LinearLayout:
```xml
<com.example.RoundedLinearLayout
android:background="@drawable/rounded_layout"
... />
```
阅读全文