【问题标题】:Canvas not drawing text?画布不绘制文字?
【发布时间】:2018-02-19 21:01:55
【问题描述】:

当用户在android studio 中单击带有canvasbutton 时,我想在屏幕上显示一些文本。我一直在看很多关于如何做到这一点的帖子和视频。问题是,当我尝试他们的代码时,当我点击我的按钮时,什么都没有出现。有谁知道我做错了什么?

这是我的Java 课程:

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button drawCanvas = findViewById(R.id.draw_canvas_button);

    drawCanvas.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Paint paint = new Paint();
            Canvas canvas = new Canvas();
            paint.setColor(Color.BLACK);
            paint.setStyle(Paint.Style.FILL);
            paint.setTextSize(20f);
            canvas.drawText("My Text", 10f, 15f, paint);

        }
    });
}
}

【问题讨论】:

  • @Mohamd Al-Najjar 我无法解决我的问题。我知道我必须使用某种位图,但我仍然找不到我的错误。
  • 可以在ImageView上显示位图
  • 糟糕!位图指的是ImageView,女巫不是我需要的。别管位图。我的代码仍然有效。有什么帮助吗?

标签: java android canvas view draw


【解决方案1】:

看来您必须通过导入View 来使用称为onDraw 的方法。

import android.view.View;

public class myClass extends View{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


}
@Override
protected void onDraw(Canvas canvas){
    super.onDraw(canvas);
    //Where you put the code
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    相关资源
    最近更新 更多