如何初始化和填充二维位图数组?

时间:2013-06-07 14:15:23

标签: android bitmap android-view

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

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。我将在旁边有四个其他按钮来更改图层和一些更多的数组来存储当前状态。

1 个答案:

答案 0 :(得分:1)

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

您可能会看到来自lint的旧警告/错误,请尝试清除它们:右键单击项目&gt; Android工具&gt;清除棉绒标记

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

    Bitmap bmp = new Bitmap();
    bmp.createBitmap(100, 100, Config.RGB_565);