0

我一直在修改游戏的代码,以包含一个功能,用户可以在手机上选择自己的图像作为背景。我正在使用的当前文件中有两个类称为GameActivityGameView。我有一个活动,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吗?

4

1 回答 1

0

是的,在 GameActivity 类中创建一个 set 方法来设置 mDrawableBg。

public void setBackground(URL url){
GameViewClassInstance.mDrawableBg = url
}
于 2012-07-25T14:26:35.073 回答