Android Matrix显示不正常,我该如何解决?

XML不是这种情况下的因素。 我用onDraw函数覆盖画布,并将整个画面作为画布提供。

保护无效onDraw(画布画布){canvas.drawColor(Color.BLACK);

    int gemID=0;
    for(int c=0;c<5;c++){
        for(int r=0;r<5;r++){
            gemID= GemField[c][r];
            canvas.drawBitmap(bmps.get(gemID),c,r,null);
        }
    } 

在创建绘制的画布时,我创建矩阵,然后填充矩阵,如下面的代码所示。

private void createGemField(){

    Random rnd= new Random();
    for(int col=0;col<5;col++){
        for(int row=0;row<5;row++){
            int gemNum = rnd.nextInt(4-0);
            GemField[col][row]=gemNum;
        }
    }

}

private void drawGems(){
    int gemID=0;

    for(int col=0;col<5;col++){
        for(int row=0;row<5;row++){

            gemID=GemField[col][row];
            canvas.drawBitmap(bmps.get(gemID),col,row,null);

        }
    }

}

不幸的是,我得到的图像在屏幕的左上方是正方形,多个对象看起来像是相互缩放的。 更像是一个蛇鳞或带状疱疹,物体重叠但不完全。 离矩阵起始位置越远,重叠越少。 任何想法为什么这可能会发生?


canvas.drawBitmap(bmps.get(gemID),c,r,null);

这里, cr是绘制位图的画布上的点的x和y分量。 我假设你的位图大于1px,所以你应该把它改成:

canvas.drawBitmap(bmps.get(gemID), 50 * c, 50 * r, null); 或类似的东西; 位图之间现在是50px的空间。

链接地址: http://www.djcxy.com/p/31453.html

上一篇: Android Matrix isn't displaying properly, how do I fix it?

下一篇: How to draw content behind parent View in Custom ViewGroup