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);
这里, c
和r
是绘制位图的画布上的点的x和y分量。 我假设你的位图大于1px,所以你应该把它改成:
canvas.drawBitmap(bmps.get(gemID), 50 * c, 50 * r, null);
或类似的东西; 位图之间现在是50px的空间。
上一篇: Android Matrix isn't displaying properly, how do I fix it?
下一篇: How to draw content behind parent View in Custom ViewGroup