我需要在Xamarin.Android
的父级布局周围绘制边框,它可以是FrameLayout
,LinearLayout
等任何布局。
我通过使用GradientDrawable实现了这一点 - 这就像为具有形状的布局设置背景一样。
所以我的要求将会实现
查询
设置边框的圆角半径时,不会裁剪孩子。如何剪辑孩子或任何其他方式替代做两者?请与您分享您的建议。?
注意:我尝试使用ClipChildren
,ClipToPadding
进行布局。
PS:上面的图片是出于说明目的而提及的,它们并不是确切的输出。
TIA。
答案 0 :(得分:1)
您可以使用画布剪辑视图。使用Canvas的ClipPath(路径)方法剪切所需区域。
语法:
Path path = new Path();
path.AddCircle(200,200,100,Direction.CW);
canvas.ClipPath(path);
答案 1 :(得分:1)
您可以使用ViewOutlineProvider
API。作为示例用法,请参阅ClippingBasic项目。
已定义大纲提供者类:
private class OvalOutlineProvider extends ViewOutlineProvider {
@Override
public void getOutline(View view, Outline outline) {
outline.setOval(0, 0, view.getWidth(), view.getHeight());
}
}
然后将视图轮廓应用于父级:
View parent = findViewById(R.id.parent);
parent.setOutlineProvider(new OvalOutlineProvider());
parent.setClipToOutline(true);
从API 21开始可以访问 ViewOutlineProvider
。不确定该解决方案是否适用于Xamarin(希望如此)。
答案 2 :(得分:0)
为父级设置ClipToOutline = true;
,可以解决问题。