質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
button

HTMLで用いる<button>タグです。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

Q&A

解決済

1回答

2258閲覧

エミュレーターに設定した画像が表示されない

htnk_4a

総合スコア3

button

HTMLで用いる<button>タグです。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

0クリップ

投稿2020/12/16 10:55

編集2020/12/19 06:52

#解決したい問題
エミュレーターを起動したときに設定した画像が表示されないので表示できるようにしたいです。
#直面している課題
このプログラムで三回勝ったときor三回負けたときにirasutoyahappy.png or irasutoyabad.pngを表示できるようにしたいのと、"次へ"というボタンをじゃんけんが終わるごとに表示したいです。
情報が足りない場合は載せますのでご指摘ください。

コード///mainactivity/// package com.example.janken import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.preference.PreferenceManager import androidx.core.content.edit import kotlinx.android.synthetic.main.activity_main.* import android.view.View as View1 class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // setContentView(R.layout.activity_test3) setContentView(R.layout.activity_main) gu.setOnClickListener { onJankenButtonTapped(it) } choki.setOnClickListener { onJankenButtonTapped(it) } pa.setOnClickListener { onJankenButtonTapped(it) } val pref = PreferenceManager.getDefaultSharedPreferences(this) pref.edit { clear() } } fun onJankenButtonTapped(view: View1?) { val streak = this.intent.getIntExtra("streak", 0) val intent = Intent(this, ResultActivity::class.java) intent.putExtra("MY_HAND", view?.id) intent.putExtra("streak", streak) startActivity(intent) } } }
コード///resultactivity/// package com.example.janken import android.content.Intent import android.os.Bundle import android.preference.PreferenceManager import android.util.Log import androidx.appcompat.app.AppCompatActivity import androidx.core.content.edit import kotlinx.android.synthetic.main.activity_result.* class ResultActivity : AppCompatActivity() { val gu = 0 val choki = 1 val pa = 2 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_result) val id = intent.getIntExtra("MY_HAND", 0) val myHand: Int myHand = when (id) { R.id.gu -> { myHandImage.setImageResource(R.drawable.gu) gu } R.id.choki -> { myHandImage.setImageResource(R.drawable.choki) choki } R.id.pa -> { myHandImage.setImageResource(R.drawable.pa) pa } else -> gu } // コンピュータの手を決める val comHand = getHand() when (comHand) { gu -> comHandImage.setImageResource(R.drawable.com_gu) choki -> comHandImage.setImageResource(R.drawable.com_choki) pa -> comHandImage.setImageResource(R.drawable.com_pa) } // 勝敗を判定する val gameResult = (comHand - myHand + 3) % 3 when (gameResult) { 0 -> resultLabel.setText(R.string.result_draw) // 引き分け 1 -> resultLabel.setText(R.string.result_win) // 勝った場合 2 -> resultLabel.setText(R.string.result_lose) // 負けた場合 } backButton.setOnClickListener { finish() } var streak = intent.getIntExtra("streak", 0) when (gameResult) { 0 -> { resultLabel.setText(R.string.result_draw) // 引き分け // 引き分けの場合はカウントを0に戻す streak = 0 } 1 -> { resultLabel.setText(R.string.result_win) // 勝った場合 // 連敗中の場合は値を0に戻す if(streak < 0){ streak = 0 } streak += 1 } 2 -> { // 連勝中の場合は値を0に戻す if(streak > 0){ streak = 0 } streak -= 1 resultLabel.setText(R.string.result_lose) // 負けた場合 } } // TODO: プログラム終了。何がしたいか、NEXTの遷移先を変えたい?それとも表示を変えたい? if(streak >= 3 || streak <= -3){ Log.d("TEST", "ゲーム終了") } nextButton.setOnClickListener { val intent = Intent(this, MainActivity::class.java) intent.putExtra("streak", streak) // TODO: Activityが積まれ続けるのを回避。画面の構成を考える必要があれば修正する intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) startActivity(intent) } saveData(myHand, comHand ,gameResult) } private fun saveData(myHand: Int, comHand: Int, gameResult: Int) { val pref = PreferenceManager.getDefaultSharedPreferences(this) val gameCount = pref.getInt("GAME_COUNT", 0) val winningStreakCount = pref.getInt("WINNING_STREAK_COUNT", 0) val lastComHand = pref.getInt("LAST_COM_HAND", 0) val lastGameResult = pref.getInt("GAME_RESULT", -1) val edtWinningStreakCount: Int = when { lastGameResult == 2 && gameResult == 2 -> winningStreakCount + 1 else -> 0 } val editor = pref.edit() pref.edit { putInt("GAME_COUNT", gameCount + 1) putInt("WINNING_STREAK_COUNT", edtWinningStreakCount) putInt("LAST_MY_HAND", myHand) putInt("LAST_COM_HAND", comHand) putInt("BEFORE_LAST_COM_HAND", lastComHand) putInt("GAME_RESULT", gameResult) } } private fun getHand(): Int { var hand = (Math.random() * 3).toInt() val pref = PreferenceManager.getDefaultSharedPreferences(this) val gameCount = pref.getInt("GAME_COUNT", 0) val winningStreakCount = pref.getInt("WINNING_STREAK_COUNT", 0) val lastMyHand = pref.getInt("LAST_MY_HAND", 0) val lastComHand = pref.getInt("LAST_COM_HAND", 0) val beforeLastComHand = pref.getInt("BEFORE_LAST_COM_HAND", 0) val gameResult = pref.getInt("GAME_RESULT", -1) if (gameCount == 1) { if (gameResult == 2) { // 前回の勝負が1回目で、コンピュータが勝った場合、 // コンピュータは次に出す手を変える while (lastComHand == hand) { hand = (Math.random() * 3).toInt() } } else if (gameResult == 1) { // 前回の勝負が1回目で、コンピュータが負けた場合 // 相手の出した手に勝つ手を出す hand = (lastMyHand - 1 + 3) % 3 } } else if (winningStreakCount > 0) { if (beforeLastComHand == lastComHand) { // 同じ手で連勝した場合は手を変える while (lastComHand == hand) { hand = (Math.random() * 3).toInt() } } } return hand } }
コード ///activity_main.xml/// <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <ImageButton android:id="@+id/choki" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:scaleType="fitCenter" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/choki" /> <ImageButton android:id="@+id/pa" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginStart="8dp" android:scaleType="fitCenter" app:layout_constraintStart_toEndOf="@+id/choki" app:layout_constraintTop_toTopOf="@+id/choki" app:srcCompat="@drawable/pa" /> <ImageButton android:id="@+id/gu" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginEnd="8dp" android:scaleType="fitCenter" app:layout_constraintEnd_toStartOf="@+id/choki" app:layout_constraintTop_toTopOf="@+id/choki" app:srcCompat="@drawable/gu" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:text="@string/janken_text" android:textAppearance="@style/TextAppearance.AppCompat.Large" app:layout_constraintBottom_toTopOf="@+id/choki" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/12/16 11:06

このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
razuma

2020/12/16 12:55

activity_main.xmlとactivity_result.xmlも貼っていただけると幸いです また、このコードの他に画面はない認識で良いでしょうか。
htnk_4a

2020/12/16 13:24

どちらもあるのですがどのように貼ったらよいかわからないです、、(コードではなく画像配置の画面のため) やり方をよろしければご教授ください
razuma

2020/12/19 10:55

activity_result.xmlも貼っていたけますでしょうか。 「"次へ"というボタンをじゃんけんが終わるごとに表示したいです。」 とありますがResultActivityにnextButton.setOnClickListener~とあるので次へボタンは現状でも表示されているのではないでしょうか? irasutoyahappy.png or irasutoyabad.pngを表示したいのはResultActivityでしょうか。 また、質問は「エミュレーターに設定した画像が表示されない」とありますがコード上で見ると comHandImage.setImageResource(R.drawable.com_gu)のようにdrawableに画像を入れてそれを表示させているようなのですが、それと同じようにしても表示されないと言うことでしょうか。 以上、よろしくお願いいたします。
htnk_4a

2020/12/20 04:51 編集

字数オーバーで投稿出来ないのでこちらに失礼します。見づらくてすみません。 ///activity_result.xml/// <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ResultActivity"> <TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/resultLabel" android:textAppearance="@style/TextAppearance.AppCompat.Large" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="8dp" app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="8dp" android:layout_marginTop="8dp" app:layout_constraintTop_toTopOf="parent" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent"/> <ImageView android:layout_width="160dp" android:layout_height="160dp" app:srcCompat="@drawable/gu" android:id="@+id/myHandImage" android:scaleType="fitCenter" android:layout_marginTop="8dp" app:layout_constraintTop_toTopOf="parent" android:layout_marginEnd="8dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginStart="8dp" app:layout_constraintStart_toStartOf="parent" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/resultLabel"/> <ImageView android:layout_width="130dp" android:layout_height="200dp" app:srcCompat="@drawable/com_gu" android:id="@+id/comHandImage" android:scaleType="fitCenter" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginEnd="8dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginStart="8dp" app:layout_constraintStart_toStartOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/resultLabel"/> <Button android:id="@+id/backButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="4dp" android:text="@string/back_text" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageButton android:id="@+id/imageButton3" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitCenter" app:srcCompat="@drawable/irasutoyahappy" tools:layout_editor_absoluteX="34dp" tools:layout_editor_absoluteY="500dp" /> <ImageButton android:id="@+id/imageButton4" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitCenter" app:srcCompat="@drawable/irasutoyahappy" tools:layout_editor_absoluteX="279dp" tools:layout_editor_absoluteY="500dp" /> <Button android:id="@+id/nextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="次へ" tools:layout_editor_absoluteX="293dp" /> </androidx.constraintlayout.widget.ConstraintLayout>
guest

回答1

0

ベストアンサー

スクリーンショットが貼れないのでこちらに貼ります。
xmlファイルはCodeかSplitを押すとコードが出てきますのでそちらを押してみてください。
(回答についてはxmlの状況などを見てから別途追記予定)

イメージ説明

===追記
activity_result.xmlにてtools:layout_editor_absoluteXtools:layout_editor_absoluteYが使われています。
こちらはツール上ではレイアウトされているように見えますが実行した際には意味をなさない値です。
表示上と同じように見えるように書き換えてみましたが以下にすることで問題は解決しないでしょうか。

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ResultActivity"> <TextView android:id="@+id/resultLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:text="TextView" android:textAppearance="@style/TextAppearance.AppCompat.Large" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@+id/myHandImage" android:layout_width="160dp" android:layout_height="160dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:scaleType="fitCenter" app:layout_constraintBottom_toTopOf="@+id/resultLabel" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/gu" /> <ImageView android:id="@+id/comHandImage" android:layout_width="130dp" android:layout_height="200dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:scaleType="fitCenter" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/resultLabel" app:srcCompat="@drawable/com_gu" /> <Button android:id="@+id/backButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="4dp" android:text="@string/back_text" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageButton android:id="@+id/imageButton3" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitCenter" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/comHandImage" app:layout_constraintTop_toBottomOf="@+id/resultLabel" app:srcCompat="@drawable/irasutoyahappy" /> <ImageButton android:id="@+id/imageButton4" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitCenter" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toEndOf="@+id/comHandImage" app:layout_constraintTop_toBottomOf="@+id/resultLabel" app:srcCompat="@drawable/irasutoyahappy" /> <Button android:id="@+id/nextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="次へ" app:layout_constraintTop_toTopOf="parent" app:layout_constraintRight_toRightOf="parent" android:layout_marginEnd="16dp" android:layout_marginTop="4dp" /> </androidx.constraintlayout.widget.ConstraintLayout>

以上、よろしくお願いいたします。

=== 追記
真っ白になるとのことですが、MainActivityが2重になって書かれているので1つ削除してください

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) gu.setOnClickListener { onJankenButtonTapped(it) } choki.setOnClickListener { onJankenButtonTapped(it) } pa.setOnClickListener { onJankenButtonTapped(it) } val pref = PreferenceManager.getDefaultSharedPreferences(this) pref.edit { clear() } } fun onJankenButtonTapped(view: View1?) { val streak = this.intent.getIntExtra("streak", 0) val intent = Intent(this, ResultActivity::class.java) intent.putExtra("MY_HAND", view?.id) intent.putExtra("streak", streak) startActivity(intent) } }

===追記
activity_main.xmlの一番上の層のConstraintLayoutにて

android:layout_width="match_parent" android:layout_height="match_parent"

が抜けています。私が書いたactivity_main.xmlを参照して入れてみてください。

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <Button android:id="@+id/choki" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:scaleType="fitCenter" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/choki" /> <ImageButton android:id="@+id/pa" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginStart="8dp" android:scaleType="fitCenter" app:layout_constraintStart_toEndOf="@+id/choki" app:layout_constraintTop_toTopOf="@+id/choki" app:srcCompat="@drawable/pa" /> <ImageButton android:id="@+id/gu" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginEnd="8dp" android:scaleType="fitCenter" app:layout_constraintEnd_toStartOf="@+id/choki" app:layout_constraintTop_toTopOf="@+id/choki" app:srcCompat="@drawable/gu" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:text="@string/janken_text" android:textAppearance="@style/TextAppearance.AppCompat.Large" app:layout_constraintBottom_toTopOf="@+id/choki" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>

投稿2020/12/16 13:59

編集2020/12/20 14:09
razuma

総合スコア1313

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

htnk_4a

2020/12/20 10:59

main_activityのじゃんけんの手を選択をする画面が真っ白で表示されてしまいます。。
razuma

2020/12/20 11:54 編集

コピペミスかと思いました。回答にも記載しましたがMainActivityが2重になっています。
htnk_4a

2020/12/20 13:55

ありがとうございます。消して実行してみましたが変わらず真っ白です。。
razuma

2020/12/20 14:10

コメント追記しました。activity_main.xmlにlayout_heightとlayout_widthが抜けているかと思います。
htnk_4a

2020/12/20 14:35

ありがとうございます!理想通り動きました!ただ、メインのチョキの画像だけ白い画像になってしまっています。(ボタンは押せてリザルト画面ではチョキで判定しています)お願いします。
razuma

2020/12/20 14:42

chokiだけImageButtonではなく、Buttonになっています。app:srcCompat="@drawable/choki"が読み込めないので白くなっているものと思われます。他と同じようにImageButtonにしてあげると良いかと思います。
htnk_4a

2020/12/20 15:10 編集

今度はグーとパーが消えてしまいチョキしか押せなくなってしまいました。しかもチョキを画面中央に配置したのに画面左上に移動してしまいます。。 activity.xmlの <ImageButton android:id="@+id/choki" と    app:srcCompat="@drawable/choki" のchokiに波線の下線が入ってますが原因が分かりません。(idをchokiに変えました。)よろしくお願いします。
razuma

2020/12/20 15:18

そこだけ抜き出して書かれても私もわかりません。 全体をコピーしてそのまま貼り付けていただくか、発生しているエラーメッセージを教えてください。 idをchokiに変えました、と書かれていますが元々chokiだった気もしますが。
htnk_4a

2020/12/20 15:49

chokiの部分がimagebuttonになっていませんでした。解決しました! この質問の表題の「このプログラムで三回勝ったときor三回負けたときにirasutoyahappy.png or irasutoyabad.pngを表示をする」というところがうまくできない(画像が勝敗関係なく表示されてしまう)のでそこもお願いします。質問が先日から長引いてしまいすみません。。よろしくお願いします。 長くなりそうなので次の質問にしたいと思います。ご覧いただければ幸いです。
razuma

2020/12/20 15:52

layout_editor_absoluteX、layout_editor_absoluteYは表面上レイアウトさせているだけなので実際のレイアウト設定ではありません。 たぶん、Designと言うところでポチポチと操作してレイアウトしているのかと思いますがコードでレイアウトした方が良いかもしれません。
razuma

2020/12/20 15:54

あと、回答が得られた質問に関してはベストアンサーを選んで質問を閉じる作業を行ってください。(これをしないとその質問がいつまでも解決されていないと言うことになります)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問