我想制作一个带圆角边框的布局。如何在LinearLayout
?
答案 0 :(得分:250)
您可以在drawable文件夹中创建XML文件。例如,调用它shape.xml
在shape.xml
:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid
android:color="#888888" >
</solid>
<stroke
android:width="2dp"
android:color="#C4CDE0" >
</stroke>
<padding
android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp" >
</padding>
<corners
android:radius="11dp" >
</corners>
</shape>
<corner>
标记适用于您的具体问题。
根据需要进行更改。
在您的whatever_layout_name.xml
:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp"
android:background="@drawable/shape" >
</LinearLayout>
这是我通常在我的应用中执行的操作。希望这会有所帮助......
答案 1 :(得分:11)
您可以使用Shape Drawable作为布局的背景并设置其cornerRadius。 Check this blog获取详细教程
答案 2 :(得分:4)
布局
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@android:color/darker_gray">
</solid>
<stroke
android:width="0dp"
android:color="#424242">
</stroke>
<corners
android:topLeftRadius="100dip"
android:topRightRadius="100dip"
android:bottomLeftRadius="100dip"
android:bottomRightRadius="100dip">
</corners>
</shape>
Drawable文件夹rounded_edge.xml
const myFunc = () => {
const a = uuid();
return a;
}
答案 3 :(得分:0)
尝试此操作,以便以编程方式将半径设置为LinearLayout或任何视图的背景。
private Drawable getDrawableWithRadius() {
GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setCornerRadii(new float[]{20, 20, 20, 20, 20, 20, 20, 20});
gradientDrawable.setColor(Color.RED);
return gradientDrawable;
}
LinearLayout layout = new LinearLayout(this);
layout.setBackground(getDrawableWithRadius());
答案 4 :(得分:0)
尝试使用 Glide 模块处理图像。你需要像这样实现它:
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
这是我在 Fragment 中的用例。这是我从常量中获取图像 URL 的地方。然后我将角半径设置为 16。然后在我的 LinearLayout 中设置结果背景:
Glide.with(this).load(Constants.FLAT_IMAGE).apply(RequestOptions.bitmapTransform(
RoundedCorners(16)
)).into(object :
CustomTarget<Drawable>() {
override fun onLoadCleared(placeholder: Drawable?) {
super.onLoadStarted(placeholder)
}
override fun onResourceReady(
resource: Drawable,
transition: Transition<in Drawable>?
) {
binding.llPromoDreamFlatImage.background = resource
}
})
通过这种方式,您可以为 LinearLayout 将背景图像设置为图片或带有圆角边缘的颜色。这是我的例子:
<LinearLayout
android:id="@+id/llPromoDreamFlatImage"
android:layout_width="match_parent"
android:layout_height="420dp"
android:layout_marginTop="35dp"
android:layout_gravity="center"
android:gravity="center"
>