0

我想初始化并显示一个四乘四的圆圈网格。我收到两个错误:

1实际上是一个警告:应该以静态方式访问来自类型位图的静态方法createBitmap。

1 错误:构造函数 Bitmap() 不可见。

下面是我的代码。

package com.example.dcubebluetooth;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;

public class LEDView extends View{

    Paint background = new Paint();
    Paint black = new Paint();
    Paint red = new Paint();
    int numRows = 4;
    int numCols = 4;
    Bitmap[][] leds = new Bitmap[numRows][numCols];
    Canvas ledDrawer = new Canvas();

    public LEDView(Context context) {
        super(context);
        background.setARGB(255, 255, 255, 255);
        black.setARGB(255, 0, 0, 0);
        red.setARGB(255, 255, 0, 0);
        for(int y=0; y<numCols; y++){
            for(int x=0; x<numRows; x++){
                Bitmap map =  Bitmap.createBitmap(100, 100, Config.RGB_565); //Error here
                leds[x][y] = map;
                ledDrawer.setBitmap(leds[x][y]);
                ledDrawer.drawCircle(50, 50, 50, black);
            }
        }
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawPaint(background);
        for(int y=0; y<numCols; y++){
            for(int x=0; x<numRows; x++){
                canvas.drawBitmap(leds[x][y], x*100, y*100, null);
            }
        }
    }



}

我做了一个以前的项目,我这样做了,它没有给我任何错误或警告:

//Instance variable
Bitmap touchPad; 

//In constructor
touchPad = Bitmap.createBitmap(screenWidth, (int) (screenHeight*0.75), Config.RGB_565);

两者有什么区别?

额外信息:四乘四网格将代表连接到我的微控制器的一层 LED。我将在侧面有四个其他按钮来在层和更多数组之间切换以存储当前状态。

4

1 回答 1

1

此代码没有任何错误或警告!(我在这里测试过)

您可能会看到来自 lint 的旧警告/错误,请尝试清理它们:右键单击项目 > Android 工具 > 清除 Lint Markers

当您从 Bitmap 实例调用 createBitmap 时,会发生此警告/错误,例如:

    Bitmap bmp = new Bitmap();
    bmp.createBitmap(100, 100, Config.RGB_565);
于 2013-06-07T16:10:34.783 回答