刷新类外的可绘制背景

时间:2012-07-25 08:03:17

标签: java android eclipse drawable

我一直致力于修改游戏代码以包含一项功能,用户可以通过手机选择自己的图像作为背景。我正在处理的当前文件中有两个类,名为GameActivityGameView。我在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的背景?

1 个答案:

答案 0 :(得分:0)

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

public void setBackground(URL url){
GameViewClassInstance.mDrawableBg = url
}