Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自定义圆形线性布局:添加边框_Android_Android Layout - Fatal编程技术网

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边框上显示颜色,我不想用颜色填充圆形布局。。。