android - 在Android中画一条线而不将其设置为内容

标签 android

这里只是个新手。

是否可以在布局上画一条线?

我有一个XML 文件(activity_main),它包含一个布局,它是我从github 获取的ImageLayout。该布局包含一个图像和几个按钮。

我想做的是在布局上的两点之间画一条线。为了画线,人们通常创建一个Draw class 并扩展View。在 MainActivity 上,他们将setContent Draw class。我已经 setContent 我的 XML 文件。我如何从这一点画一条线?

编辑: 我听说过 Path 类,我认为它比使用 onDraw 更好,因为我会在我的布局中连接(画线)几个点。

如果可以的话请教我一下

最佳答案

子类化容器 ViewGroup 并覆盖其 dispatchDraw() 方法。我提供了子类 LinearLayout 的示例,但是,这可以与任何其他 ViewGroup 一起使用。

public class MyLinearLayout extends LinearLayout {
    private Paint paint;

    public MyLinearLayout(Context context) {
        super(context);
        initPaint();
    }

    public MyLinearLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        initPaint();
    }

    public MyLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initPaint();
    }

    private void initPaint() {
        paint = new Paint();
        paint.setColor(Color.RED);
        paint.setStrokeWidth(10);
    }

    @Override
    protected void dispatchDraw(Canvas canvas) {
        super.dispatchDraw(canvas);
        canvas.drawLine(0, 0, canvas.getWidth(), canvas.getHeight(), paint);
    }
}

关于android - 在Android中画一条线而不将其设置为内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29705264/

相关文章:

android - Android 应用程序是否可以使用 Open-ID 服务?

android - 如何在 Chrome OS 上启用 ADB 调试?

java - 上下文菜单未显示在 ListActivity 中

android - Android 中启用对讲时的 Ontouch 事件

java - org.json.JSONException:字符19处的未终止对象

java - 如何准确测量 drawTextOnPath() 在 Canvas 上绘制的文本的像素大小

Android 的 Widget 和多个挂起 Intent 问题

android - 如何使用主页按钮终止应用程序

android - 如何阻止 logcat 在 Android Studio 中滚动

android - 是否可以制作自定义 android 媒体路由?