私はゲームのコードを修正して、ユーザーが電話から自分の画像を選択して背景として使用できる機能を含めることに取り組んでいます。現在作業中のファイルには、 と という 2 つのクラスがあり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
か?