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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

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

Q&A

解決済

1回答

2057閲覧

AndroidStudio テキストの文字(色、大きさ)、その他の質問

H30_inenaga

総合スコア18

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

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

0グッド

0クリップ

投稿2018/06/11 02:23

分からないこと(ここではじゃんけんゲームに合わせて質問をします。)

・じゃんけんゲームで、メイン画面で自分が手を選び、リザルト画面でコンピュータの出した手を表示して、勝敗を決める流れですが、リザルト画面で勝敗によって文字のサイズや色を変更するにはどうしたら良いでしょうか?(ソースコードを掲載します。)
・レイアウトエディタのプロパティでも、XX.javaのクラスでも、テキスト(Text.view)の色やサイズ、配置を変えられますがどちらの方が使い勝手が良いのでしょうか?

Main.Activity.java

Java

1import android.content.Intent; 2import android.content.SharedPreferences; 3import android.graphics.Color; 4import android.os.Bundle; 5import android.preference.PreferenceManager; 6import android.support.v7.app.AppCompatActivity; 7import android.view.View; 8import android.widget.TextView; 9 10public class MainActivity extends AppCompatActivity { 11 12 @Override 13 protected void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_main); 16 TextView txt=(TextView)findViewById(R.id.textView2);//テキストの色を指定 17 txt.setTextColor(Color.argb(255,255,0,0));//(透明度,r,g,b) 18 txt.setTextSize(18.0f);//float型の値で文字の大きさを指定。 19 20 //起動時にデータをクリアする 21 SharedPreferences pref = 22 PreferenceManager.getDefaultSharedPreferences(this); 23 SharedPreferences.Editor editor = pref.edit(); 24 editor.clear(); 25 editor.commit(); 26 } 27 28 public void onJankenButtonTapped(View view) {//引数viewを受け取ってonClickプロパティに設定する。 29 Intent intent = new Intent(this, ResultActivity.class);//Intentクラスのインスタンスを生成。 30 intent.putExtra("MY_HAND", view.getId());//タップされたイメージボタンのIDをインテントに格納 31 startActivity(intent);//生成したインスタンスをstartActivityメソッドの引数に渡す。 32 } 33}

ResultActivity.javaのソースコード

Java

1import android.content.Intent; 2import android.content.SharedPreferences; 3import android.os.Bundle; 4import android.preference.PreferenceManager; 5import android.support.v7.app.AppCompatActivity; 6import android.view.View; 7import android.widget.ImageView; 8import android.widget.TextView; 9 10public class ResultActivity extends AppCompatActivity { 11 final int JANKEN_GU = 0 ;//グーは0 12 final int JANKEN_CHOKI = 1 ;//チョキは1 13 final int JANKEN_PA = 2 ;//パーは2として定数を定義。 14 15 @Override 16 protected void onCreate(Bundle savedInstanceState) { 17 super.onCreate(savedInstanceState); 18 setContentView(R.layout.activity_result); 19 20 int myHand = 0 ;//前画面でプレイヤーが出した手の情報を記録するための変数 21 Intent intent = getIntent();//受け取ったインテントの取得 22 int id = intent.getIntExtra("MY_HAND" , 0);//インテントに格納された情報を取り出す。 23 24 //TextView txt=(TextView)findViewById(R.id.my_hand_image);//テキストの色を指定(ここが出来ない?) 25 //txt.setTextColor(Color.argb(255,255,0,0));//(透明度,r,g,b) 26 ImageView myHandImageView = 27 (ImageView) findViewById(R.id.my_hand_image); 28 29 30 switch (id) {//前画面でプレイヤーが出した手の情報を記録。 31 case R.id.gu: 32 myHandImageView.setImageResource(R.drawable.jankengu); 33 myHand = JANKEN_GU; 34 break; 35 case R.id.choki: 36 myHandImageView.setImageResource(R.drawable.jankenchoki); 37 myHand = JANKEN_CHOKI; 38 break; 39 case R.id.pa: 40 myHandImageView.setImageResource(R.drawable.jankenpa); 41 myHand = JANKEN_PA; 42 break; 43 default: 44 myHand = JANKEN_GU; 45 break; 46 } 47 int comHand = getHand();//コンピュータの手をランダムで決める 48 ImageView comHandImageView = 49 (ImageView) findViewById(R.id.sazae_hand_image); 50 switch (comHand) {//コンピュータの手に合わせた画像の表示 51 case JANKEN_GU: 52 comHandImageView.setImageResource(R.drawable.sazaesan3); 53 break; 54 case JANKEN_CHOKI: 55 comHandImageView.setImageResource(R.drawable.sazaesan1); 56 break; 57 case JANKEN_PA: 58 comHandImageView.setImageResource(R.drawable.sazaesan2); 59 break; 60 } 61 //勝敗を決定する。 62 TextView resultLabel = (TextView) findViewById(R.id.result_label); 63 int gameResult = (comHand - myHand + 3) % 3 ; 64 switch (gameResult) { 65 case 0://あいこの場合 66 resultLabel.setText(R.string.result_draw); 67 break; 68 case 1://勝った場合 69 resultLabel.setText(R.string.result_win); 70 break; 71 case 2://負けた場合 72 resultLabel.setText(R.string.result_lose); 73 break; 74 } 75 //じゃんけんの結果を保存する。 76 saveData(myHand, comHand, gameResult); 77 } 78 public void onBackButtonTapped(View view) { 79 finish(); 80 } 81 private void saveData(int myHand, int comHand, int gameResult){ 82 SharedPreferences pref = 83 PreferenceManager.getDefaultSharedPreferences(this); 84 SharedPreferences.Editor editor = pref.edit(); 85 86 int gameCount = pref.getInt("GAME_COUNT",0); 87 int winningStreakCount = pref.getInt("WINNING_STREAK_COUNT", 0); 88 int lastComHand = pref.getInt("LAST_COM_HAND", 0); 89 int lastGameResult = pref.getInt("GAME_RESULT", -1); 90 editor.putInt("GAME_COUNT",gameCount + 1); 91 if (lastGameResult == 2 && gameResult == 2) { 92 //コンピュータが連勝した場合 93 editor.putInt("WINNING_STREAK_COUNT", winningStreakCount + 1); 94 } else { 95 editor.putInt("WINNING_STREAK_COUNT", 0); 96 } 97 editor.putInt("LAST_MY_HAND" , myHand) ; 98 editor.putInt("LAST_COM_HAND" , comHand) ; 99 editor.putInt("BEFORE_LAST_COM_HAND" , lastComHand) ; 100 editor.putInt("GAME_RESULT" , gameResult) ; 101 102 editor.commit(); 103 } 104 private int getHand() { 105 int hand = (int) (Math.random() * 3); 106 SharedPreferences pref = 107 PreferenceManager.getDefaultSharedPreferences(this); 108 int gameCount = pref.getInt("GAME_COUNT", 0); 109 int winningStreakCount = pref.getInt("WINNING_STREAK_COUNT", 0); 110 int lastMyHand = pref.getInt("LAST_MY_HAND", 0); 111 int lastComHand = pref.getInt("LAST_COM_HAND", 0); 112 int beforeLastComHand = pref.getInt("BEFORE_LAST_COM_HAND", 0); 113 int gameResult = pref.getInt("GAME_RESULT", -1); 114 115 if (gameCount == 1) { 116 if (gameResult == 2) { 117 //前回の勝負が1回目でコンピュータが勝った場合、 118 //コンピュータは次に出す手を変える 119 while (lastComHand == hand) { 120 hand = (int) (Math.random() * 3); 121 } 122 } else if (gameResult == 1) { 123 //前回の勝負が1回目でコンピュータが負けた場合、 124 //相手の出した手に勝つ手を出す。 125 hand = (lastMyHand - 1 + 3) % 3; 126 } 127 } else if (winningStreakCount > 0) { 128 if (beforeLastComHand == lastComHand) { 129 //同じ手で連勝した場合は手を変える。 130 while (lastComHand == hand) { 131 hand = (int) (Math.random() * 3); 132 } 133 } 134 } 135 return hand; 136 } 137}

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

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

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

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

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

guest

回答1

0

ベストアンサー

Java

1 switch (gameResult) { 2 case 0://あいこの場合 3 resultLabel.setText(R.string.result_draw); 4 resultLabel.setTextSize(12.0f); 5 resultLabel.setTextColor(Color.BLACK); 6 break; 7 case 1://勝った場合 8 resultLabel.setText(R.string.result_win); 9 resultLabel.setTextSize(36.0f); 10 resultLabel.setTextColor(Color.RED); 11 break; 12 case 2://負けた場合 13 resultLabel.setText(R.string.result_lose); 14 resultLabel.setTextSize(8.0f); 15 resultLabel.setTextColor(Color.BLUE); 16 break; 17 }

のように、setTextSize()とsetTextColor()を使えばいいでしょう。

どちらの方が使い勝手が良いのでしょうか?

好みの問題かと思います。起動時の状態はレイアウトエディターで設定する人もいれば、onCreate()の中で明示的にsetTextSize()やsetTextColor()で設定をする人もいるでしょう。

投稿2018/06/11 08:57

keicha_hrs

総合スコア6768

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

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

H30_inenaga

2018/06/12 04:29

ありがとうございます。音声認識の方の質問も閲覧くださると幸いですm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問