Android 自定义圆形线性布局:添加边框
我开发了一个定制的圆角Android 自定义圆形线性布局:添加边框,android,android-layout,Android,Android Layout,我开发了一个定制的圆角线性布局,我想添加1px边框 这是我的代码: public class MyLinearLayout extends LinearLayout { private float radius; private Path path = new Path(); private RectF rect = new RectF(); public MyLinearLayout(Context context) { super(context); radius =
线性布局
,我想添加1px边框
这是我的代码:
public class MyLinearLayout extends LinearLayout {
private float radius;
private Path path = new Path();
private RectF rect = new RectF();
public MyLinearLayout(Context context)
{
super(context);
radius = 20;
setWillNotDraw(false);
}
@Override
protected void onDraw(Canvas canvas) {
path.reset();
rect.set(0, 0, canvas.getWidth(), canvas.getHeight());
path.addRoundRect(rect, radius, radius, Direction.CCW);
// Add 1px border RED here ?
path.close();
canvas.clipPath(path);
}
}
感谢您的帮助。如果仔细查看自定义
线性布局中的圆角,您可能会发现半径不平滑。这是因为系统限制不支持路径上的抗锯齿
下面是Erik Burke关于如何正确创建带有圆角的视图的一篇精彩文章。基本上,您将创建一个屏幕外位图
,绘制一个圆形矩形
,并使用alpha合成技术将屏幕外位图
与自定义线性布局
画布
位图
合并
至于边框,您可以通过将
Paint.Style.FILL\u和_STROKE
设置为Paint
hmmmm来绘制它。。。为什么不使用可绘制的xml形状?这会更容易。不,我不能,因为我会动态地改变颜色,而且我不能使用“挫折”方法。谢谢你提供了这个很棒的教程。问题是我不想使用抽绳。我只想得到一个带边框的圆形线性布局。对,你可以使用Paint
类通过代码来绘制边框。哼,我不知道怎么做。你有没有举个例子?我想到的一件事是让你的屏幕外位图比你的线性布局的宽度和高度小一个像素。然后给线性布局
的位图
一种颜色。然后边框将显示。我只想在1px边框上显示颜色,我不想用颜色填充圆形布局。。。