我一直致力于修改游戏代码以包含一项功能,用户可以通过手机选择自己的图像作为背景。我正在处理的当前文件中有两个类,名为GameActivity
和GameView
。我在GameActivity
中有一项活动可以打开手机的图库,让用户在屏幕上按下按钮后选择图像。然后,假设图像的位置作为Drawable
对象的路径传递。 setBackgroundDrawable()
函数是View
类的一部分(GameView
扩展),因此我无法在活动结果函数中直接访问它以进行图像选择。原始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
的背景?
答案 0 :(得分:0)
是的,在GameActivity类中创建一个将设置mDrawableBg的set方法。
public void setBackground(URL url){
GameViewClassInstance.mDrawableBg = url
}