【问题标题】:How to set a drawText in a SurfaceView如何在 SurfaceView 中设置 drawText
【发布时间】:2012-03-28 20:02:12
【问题描述】:

我已经创建了一个显示位图的 SurfaceView,没有问题。但是我想在屏幕底部显示一个Text,我认为它可以称为画布。

我尝试以与位图相同的方式绘制文本,但没有成功。我得到强制关闭错误。

我有这样的东西:

        public void run() {

        while (isRunning) {
            if (!ourHolder.getSurface().isValid())
                continue;

            Canvas canvas = ourHolder.lockCanvas();

            canvas.drawColor(Color.WHITE);

            canvas.drawText(score, 200, 100, null);

            canvas.drawBitmap(enemy1, enemy1X, enemy1Y, null); // DRAW FIRST
                                                                // ENEMY

            ourHolder.unlockCanvasAndPost(canvas);

我也已经尝试过设置新的 Paint,而不是使用“null”,但效果不佳:/

能否请您说明它必须如何完成,或者为什么它不起作用。我是 Android 编程新手...

谢谢 ;)

【问题讨论】:

    标签: java android surfaceview drawtext


    【解决方案1】:

    奇怪。 Сode 看起来很清晰。 图片不覆盖文字?

    然而,分配一个文本油漆并设置颜色。试试这个进行测试:

    Canvas canvas = null;
    try {
        canvas = ourHolder.lockCanvas();
        synchronized (ourHolder) {
            canvas.drawColor(Color.WHITE);
            canvas.drawBitmap(enemy1, enemy1X, enemy1Y, null);
            Paint paint = new Paint();
            paint.setColor(Color.RED);
            canvas.drawText("XXXX", 200, 100, paint);
        }
    } catch (Exception e) {
        Log.e(TAG, "run() lockCanvas()", e);
    } finally {
        if (canvas != null) {
            ourHolder.unlockCanvasAndPost(canvas);
        }
    }
    

    添加

    SurfaceView 尺寸大于 200х100?试试canvas.drawText("XXXX", 20, 20, paint);

    【讨论】:

    • 我回家后会试试的。我不知道背景是否覆盖了文本,因为我什至无法运行该应用程序。为什么是“同步”?
    • 好问题...我搜索了一下,但找不到答案。我也是初学者。谁知道答案?
    • 嗯,我不知道 SurfaceView 的尺寸...我有点迷失了尺寸,因为某些东西在我的手机上看起来很棒,但在另一个屏幕上却不行,例如,屏幕更大.我该如何处理?
    • 好吧,我现在完全迷路了哈哈。我用同步的东西和所有东西测试了你的建议,它工作得很好......文本出现了,颜色正确等等。但是,我只是不完全理解代码......:/
    • 转换代码,一步一步从你的初始代码到我的建议,你会发现问题。注意Logcat,添加一些自己的消息进行调试。尝试、修改、调试。
    猜你喜欢
    • 2015-12-28
    • 2014-05-11
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    相关资源
    最近更新 更多