有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将圆绘制到屏幕

我是安卓编程新手,正在尝试在屏幕上画一个圆圈。最后我想让圆圈移动一下。但是现在我在画圆圈时遇到了麻烦。当我运行代码时,它会给我一个错误:

"Attempt to invoke virtual method 'long 安卓.graphics.Paint.getNativeInstance()' on a null"

我的代码:

package com...

import 安卓.content.Context;
import 安卓.graphics.Bitmap;
import 安卓.graphics.BitmapFactory;
import 安卓.graphics.Canvas;
import 安卓.graphics.Color;
import 安卓.graphics.Paint;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyView(this));
    }

    class MyView extends View {



    private Bitmap b;
        public Paint p;

        public MyView(Context context) {
            super(context);
            Paint p = new Paint();
            p.setColor(Color.GREEN);
            b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
        }

        @Override
        protected void onDraw(Canvas canvas) {
            canvas.drawCircle(50, 50, 10, p);
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    代码的问题是

     public MyView(Context context) {
                super(context);
                Paint p = new Paint();// Problem is here this is local declaration
                p = new Paint() // do like this and remove above line
                p.setColor(Color.GREEN);
                b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
            }