如何在Android中为自定义视图绘制边框?

Har*_*nan 4 android border android-layout

我已经创建了一个ViewView类CustomView类。我的想法是像表中的单元格一样排列这些CustomViews。我为每个CustomViews添加了一个TextBlock作为子项,并具有一个变量索引来维护表中单元格的索引。我的要求是为CustomView绘制右边框和下边框,使其看起来像表格。我尝试创建一个XML可绘制对象(例如/res/drawable/textlines.xml),并将其分配为CustomView的background属性。

这是我尝试过的代码。但这在所有四个方面都划定了边界。但是,我只需要右边界和底边界。还有其他方法可以做到这一点吗?

<item android:right="1dp" android:bottom="1dp">
    <shape android:shape="rectangle">
        <stroke android:width="1dp" android:color="@android:color/black" />
        <solid android:color="@android:color/transparent" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

请不要建议将左边框和上边框设为负值。我认为这不是达到此要求的正确方法。请为我建议一些解决方法。

QAr*_*rea 5

当您有一个自定义视图时,您可以覆盖onDraw并在那里绘制线条。这是一个例子:

@Override
protected void onDraw(Canvas canvas) {
    Paint paint = new Paint();
    paint.setColor( Color.RED );
    paint.setStrokeWidth( 1.5f );
    paint.setStyle( Paint.Style.STROKE );
    canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
}
Run Code Online (Sandbox Code Playgroud)