【发布时间】:2015-04-29 15:57:17
【问题描述】:
我正在制作一个简单的棋盘游戏,它使用表格视图和按钮阵列作为棋盘方格。我的 movePlayer 获取目标行和列,在该行和列中放置一个标记,并用一个按钮替换其先前的位置。
我的 movePlayer 方法是:
private void movePlayer(int moveToRow, int moveToCol, Button buttons[][])
{
int oldRow = player.getPlayerRow();
int oldCol = player.getPlayerCol();
Button oldPosition = buttons[oldRow][oldCol];
int oldWidth = oldPosition.getWidth();
int oldHeight = oldPosition.getHeight();
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(),
android.R.drawable.btn_default);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(originalBitmap, oldWidth, oldHeight, true);
Resources resource = getResources();
oldPosition.setBackground(new BitmapDrawable(resource, scaledBitmap));
player.setPlayerRow(moveToRow);
player.setPlayerCol(moveToCol);
addPlayerToken(moveToRow, moveToCol, buttons);
}
我收到了error java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:596)
at foo.bar.minions.GameBoard.movePlayer(GameBoard.java:219)。
如果我将android.R.drawable.btn_default 替换为可绘制对象,例如R.drawable.foo,则此代码有效。
如果我将int oldWidth 下面的所有内容替换为oldPosition.setBackgroundResource(android.R.drawable.btn_default);,该代码也将起作用
但该按钮未正确缩放或看起来不像其他按钮。作为参考,我使用tableRow.addView(button); 创建我的按钮。
如何使我的按钮看起来一样?
【问题讨论】:
标签: java android android-button