为什么我无法在SurfaceView上绘图? [英] Why I Cannot Draw On SurfaceView ?

查看:180
本文介绍了为什么我无法在SurfaceView上绘图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好。为什么这个程序会强制关闭?

Hi. Why this program go to force close ?

SurfaceView srf;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Init();

    srf = (SurfaceView)findViewById(R.id.surfaceView1);
    Canvas cv = new Canvas();
    Paint pn = new Paint();
    pn.setAntiAlias(true);
    pn.setStrokeWidth(6f);
    pn.setColor(Color.BLUE);
    pn.setStyle(Paint.Style.STROKE);
    pn.setStrokeJoin(Paint.Join.ROUND);
    cv.drawLine(2, 2, 100, 100,pn);
    srf.draw(cv);

}

推荐答案

显示时,框架将调用上绘制 SurfaceView 传递它自己的 Canvas 这就是你会看到的,而不是什么你在活动 s onCreate 方法中的 Canvas 上绘图。



创建一个继承自 SurfaceView 的新类,并覆盖它的 onDraw 你可以自己看到这个(注意你几乎不应该覆盖 draw )。



希望这会有所帮助,

Fredrik
When displayed, the framework will call draw on SurfaceView passing it's own Canvas and that's what you'll see, not what you draw on a Canvas in the Activitys onCreate method.

Create a new class that inherits from SurfaceView and override it's onDraw and you can see this for yourself (note that you should almost never override draw).

Hope this helps,
Fredrik


这篇关于为什么我无法在SurfaceView上绘图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆