我一直在修改游戏的代码,以包含一个功能,用户可以在手机上选择自己的图像作为背景。我正在使用的当前文件中有两个类称为GameActivity
和GameView
。我有一个活动,GameActivity
可以打开手机的图库,并让用户在屏幕上按下按钮后选择图像。然后假设图像的位置作为Drawable
对象的路径传递。该setBackgroundDrawable()
函数是View
类(GameView
扩展)的一部分,因此我无法在 Activity Result 函数中直接访问它以进行图像选择。原件setBackgroundDrawable()
是GameView's
构造函数的一部分。
这是构造函数:
public GameView(Context context, AttributeSet attrs) {
super(context, attrs);
requestFocus();
mDrawableBg = getResources().getDrawable(R.drawable.lib_bg); //Mod 1
setBackgroundDrawable(mDrawableBg);
mBmpPlayer1 = getResBitmap(R.drawable.lib_cross);
mBmpPlayer2 = getResBitmap(R.drawable.lib_circle);
if (mBmpPlayer1 != null) {
mSrcRect.set(0, 0, mBmpPlayer1.getWidth() -1, mBmpPlayer1.getHeight() - 1);
}
mBmpPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mLinePaint = new Paint();
mLinePaint.setColor(0xFFFFFFFF);
mLinePaint.setStrokeWidth(5);
mLinePaint.setStyle(Style.STROKE);
mWinPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mWinPaint.setColor(0xFFFF0000);
mWinPaint.setStrokeWidth(10);
mWinPaint.setStyle(Style.STROKE);
for (int i = 0; i < mData.length; i++) {
mData[i] = State.EMPTY;
}
if (isInEditMode()) {
// In edit mode (e.g. in the Eclipse ADT graphical layout editor)
// we'll use some random data to display the state.
Random rnd = new Random();
for (int i = 0; i < mData.length; i++) {
mData[i] = State.fromInt(rnd.nextInt(3));
}
}
}
有什么办法可以调整背景GameActivity
吗?