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

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

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

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

Android Studio

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

Q&A

2回答

2846閲覧

FrameLayout.background()がnullではないのに、背景画像が真っ暗です。

takeji

総合スコア21

Java

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

Android Studio

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

0グッド

0クリップ

投稿2017/03/14 05:07

編集2017/03/15 04:44

画面Bから画面Aへ遷移して素早く再びBへ遷移すると、Bでロードされるはずの背景画像がロードされず?真っ暗になります。

調べるため画面Bで、OnWindowFocusChange()内でそのレイアウトであるFrameLayout.background()を出力するとハッシュコードが入っているので画像はロードされています。
なのに背景は真っ暗になってしまいます。原因は何かご教授頂けますでしょうか。

心当たりといえば、画面AでobjectAnimatorでアニメーションしていまして、そのアニメーション途中でBへ素早く遷移しているので、それでしょうか。

よろしくお願いいたします。

【追記】

Java

1B画面 2 @Override 3 public void run() { 4 setVolumeControlStream(AudioManager.STREAM_MUSIC); 5 setContentView(R.layout.layout11); 6 7 context = getApplicationContext(); 8 Activity11.setFlg_go_on_bgm_menu(false); 9 10 if (globals == null) { 11 globals = (Globals) this.getApplication(); 12 } 13 if (globals.getMenu_bgm() == null) { 14 globals.menu_load(this); 15 } 16 17 se = new MySe(this); 18 19 intent = getIntent(); 20 extras = intent.getExtras(); 21 flg_show_tips = (Boolean) (extras != null ? extras.getBoolean("FLG_SHOW_TIPS", flg_show_tips) : false); 22 23 24 fl1 = (FrameLayout) findViewById(id.fl1); 25 fl1.setBackgroundResource(R.drawable.bg_light);//ここの背景が真っ暗になる 26 27 28 Button backbutton = (Button) findViewById(id.backbutton); 29 MyResize mr = new MyResize(context); 30 backbutton.setTextSize(mr.dp_width() / getResources().getInteger(R.integer.divide_txt_size_btn_l)); 31 makeBtn(); 32 33 progressDialog.dismiss(); 34 } 35 36 37 @Override 38 protected void onCreate(Bundle savedInstanceState) { 39 super.onCreate(savedInstanceState); 40 41 progressDialog = new ProgressDialog(this); 42 progressDialog.setTitle("ロード中"); 43 progressDialog.setMessage("少々お待ち下さい"); 44 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 45 progressDialog.show(); 46 thread = new Thread(this); 47 thread.start(); 48 try { 49 thread.join(); 50 } catch (InterruptedException e1) { 51 e1.printStackTrace(); 52 } 53 } 54 55 56 @Override 57 protected void onResume() { 58 super.onResume(); 59 if (globals.getMenu_bgm() != null) { 60 if (!globals.getMenu_bgm().isPlaying()) { 61 globals.menu_start(); 62 } 63 } 64 } 65 66 @Override 67 protected void onPause() { 68 super.onPause(); 69 if (!Activity11.getFlg_go_on_bgm_menu()) { 70 if (Activity11.getGlobals().getMenu_bgm() != null) { 71 if (Activity11.getGlobals().getMenu_bgm().isPlaying()) { 72 Activity11.getGlobals().menu_pause(); 73 } 74 } 75 } 76 } 77 78 private void makeBtn() { 79 button = new Button(this); 80 button = (Button) findViewById(id.backbutton); 81 button.setText("back"); 82 button.setOnClickListener(new OnClickListener() { 83 public void onClick(View view) { 84 Activity11.setFlg_go_on_bgm_menu(false); 85 se.se_back(); 86 intent = new Intent(Activity11.this, Activity10.class); 87 intent.putExtra("FLG_SHOW_TIPS", flg_show_tips); 88 startActivity(intent); 89 finish(); 90 } 91 }); 92 } 93

Java

1A画面 2 3 @Override 4 public void run() { 5 setVolumeControlStream(AudioManager.STREAM_MUSIC); 6 setContentView(R.layout.layout10); 7 8 context = getApplicationContext(); 9 if(mr == null)mr = new MyResize(context); 10 if(myBgm == null)myBgm = new MyBgm(this); 11 myBgm.title_load(); 12 if(!myBgm.getBgm_title().isPlaying())myBgm.title_start(); 13 if(se == null)se = new MySe(this); 14 15 intent = getIntent(); 16 extras = intent.getExtras(); 17 flg_show_tips = (Boolean) (extras != null ? extras.getBoolean("FLG_SHOW_TIPS", flg_show_tips) : false); 18 19 fl2 = (FrameLayout) findViewById(id.fl2); 20 fl2.setBackgroundResource(R.drawable.bg_light); 21 22 title1 = (TextView) findViewById(id.title1); 23 Button go_btn = (Button) findViewById(id.go_btn); 24 go_btn.setText("start"); 25 go_btn.setTextSize(mr.dp_width() / 20f); 26 title1.setText("title"); 27 title1.setTextSize(mr.dp_width() / 7.0f); 28 title1.setY(-250.0f); 29 30 makeBtn(); 31 progressDialog.dismiss(); 32 } 33 34 @Override 35 protected void onCreate(Bundle savedInstanceState) { 36 super.onCreate(savedInstanceState); 37 38 progressDialog = new ProgressDialog(this); 39 progressDialog.setTitle("ロード中"); 40 progressDialog.setMessage("少々お待ち下さい"); 41 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 42 progressDialog.show(); 43 thread = new Thread(this); 44 thread.start(); 45 try { 46 thread.join(); 47 } catch (InterruptedException e1) { 48 e1.printStackTrace(); 49 } 50 } 51 52 53 @Override 54 protected void onResume() { 55 super.onResume(); 56 if (myBgm != null) { 57 if (!myBgm.getBgm_title().isPlaying()) { 58 myBgm.title_start(); 59 } 60 } 61 title1.setVisibility(View.VISIBLE); 62 title1.setPivotX(0.0f); 63 title1.setPivotY(0.0f); 64 scaleX = PropertyValuesHolder.ofFloat("scaleX", 1.7f, 1.0f); 65 scaleY = PropertyValuesHolder.ofFloat("scaleY", 2.7f, 1.0f); 66 anim_title1 = ObjectAnimator.ofPropertyValuesHolder(title1, scaleX, scaleY); 67 anim_title1.setDuration(5000); 68 anim_title1.start(); 69 } 70 71 @Override 72 protected void onPause() { 73 super.onPause(); 74 if (myBgm != null) { 75 if (myBgm.getBgm_title().isPlaying()) { 76 myBgm.title_pause(); 77 } 78 } 79 } 80

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

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

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

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

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

yona

2017/03/14 05:21

画面遷移の実装内容と画像のロードについて具体的に書いてださい。
takeji

2017/03/14 07:09

ソースコードを追加しました。冗長で申し訳ありませんが、よろしくお願いいたします。
yona

2017/03/14 07:25

クラスが異なるならコードは分けてください。
takeji

2017/03/15 04:42

申し訳ありません。修正します。
guest

回答2

0

run() ってthreadですか?
もしそうなら、UIスレッド外でUIいじれないのだけど。

Activity.runOnUiThread(new Runnable() { @Override public void run() { // ここに処理 } });

あたりで試してみていいかもですね。

投稿2017/03/24 14:59

uniko

総合スコア448

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

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

0

画面AのonResumeにあるanim_title1.start()をコメントアウトして実行してください。

また、あなたのコードはJavaのコーディングスタイルからかけ離れています。
コードを書くときはあなたの得意な言語のコーディングスタイルではなく、その言語のコーディングスタイルで書いた方が他の人に読んでもらいやすくなります。

投稿2017/03/14 07:32

yona

総合スコア18155

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

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

takeji

2017/03/15 05:10

anim_title1.start()をコメントアウトにしても、素早く遷移すると背景が真っ暗になりました。 animationではありませんでした。 そしてコーディングスタイルを少しずつ守るようにします。
yona

2017/03/15 12:04

では次に背景を設定している箇所でsetBackgroundColorで赤色を設定し、どうなるかを確認してください。
takeji

2017/03/16 16:09

赤色を設定すると、画面を普通に表示する時は背景が赤くなりますが、素早く遷移させての表示だと真っ暗になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問