0

私はゲームのコードを修正して、ユーザーが電話から自分の画像を選択して背景として使用できる機能を含めることに取り組んでいます。現在作業中のファイルには、 と という 2 つのクラスがありGameActivityますGameViewGameActivity電話のギャラリーを開き、画面上でボタンを押すとユーザーが画像を選択できるようにするアクティビティがあります。画像の場所は、オブジェクトへのパスとして渡されると想定され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

はい、mDrawableBg を設定する GameActivity クラス内に set メソッドを作成します。

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