回答編集履歴

2

追加

2021/11/18 10:08

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -1,3 +1,33 @@
1
1
  invalidate しても onCreate は実行されません。
2
2
 
3
3
  setPhoto で実際に画像取得し直した上で再表示させる必要があるでしょう。
4
+
5
+
6
+
7
+ ----
8
+
9
+
10
+
11
+ GameView に setmBitmap というメソッドがあり、これが画像を切り替えるものとして動作しているのであれば使えると思いますが、コンストラクタで行っている bitmapW/bitmapH を更新していないので(両変数の使い方が見えないので確実な所は分かりませんが) 動作しなさそうにも見えます。
12
+
13
+ コンストラクタに従えば setPhoto は次のようになると思います。
14
+
15
+ ```java
16
+
17
+ public void setPhoto(int photo) {
18
+
19
+ this.photo = photo;
20
+
21
+ mBitmap = ((BitmapDrawable)mycontext.getDrawable(mImageResources[photo])).getBitmap();
22
+
23
+ bitmapW = mBitmap.getWidth()/level;
24
+
25
+ bitmapH = mBitmap.getHeight()/level;
26
+
27
+ invalidate();
28
+
29
+ }
30
+
31
+ ```
32
+
33
+ なお、 [Resources クラスの getDrawable(int)](https://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int)) メソッドは API22 から非推奨になっていまして、 getDrawable(int,Theme) もしくは Context クラスの getDrawable(int) を使うことになっています。

1

コメントと間違えてしまったので内容更新

2021/11/18 10:08

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -1,3 +1,3 @@
1
- コードマークダウン記法を用いてご提示くだ
1
+ invalidate しても onCreate 実行れません
2
2
 
3
- マークダウン付きまてはヘルプをご参照くだ
3
+ setPhoto で実際画像取得直した上で再表示せる必要があるでしょう