有没有办法从视图中提取画布或位图?

发布于 2024-12-08 20:10:53 字数 443 浏览 0 评论 0 原文

我有一个扩展 View 并绘制一条线的类:

public class MyDraw extends View 
{

    Paint paint = new Paint();

    public MyDraw(Context context) 
    {
        super(context);
        paint.setColor(Color.BLUE);
    }

    @Override
    public void onDraw(Canvas canvas) 
    {
        super.onDraw(canvas);
        canvas.drawLine(1, 1, 100, 100, paint);
    }
}

我想使用 Context 中的现有视图在其之上绘制。是否可以?

I have this class that extends View and draws a line:

public class MyDraw extends View 
{

    Paint paint = new Paint();

    public MyDraw(Context context) 
    {
        super(context);
        paint.setColor(Color.BLUE);
    }

    @Override
    public void onDraw(Canvas canvas) 
    {
        super.onDraw(canvas);
        canvas.drawLine(1, 1, 100, 100, paint);
    }
}

I would like to use the existing view from the Context to draw on top of it. Is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤云独去闲 2024-12-15 20:10:53

如果您只是尝试以位图形式获取视图,则可以从绘图缓存中获取它。这应该有效。

view.buildDrawingCache;
Bitmap bm = view.getDrawingCache

您不能使用现有的视图实例并再次添加它,因为它已经分配了一个父视图,这将导致异常。

If you are just trying to get the view as a bitmap, you can get it from the drawing cache. This should work.

view.buildDrawingCache;
Bitmap bm = view.getDrawingCache

You cannot use the exisitng view instance and add it again as it already has a parent assigned to it and it wil cause an exception.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文