現在のアクティビティのボタンの画像が読み込まれるまで作業を停止しようとしているonClick()
のか、他のアクティビティの画像が読み込まれてからユーザーに切り替えさせるのか(つまり、アクティビティ4で、背景のないボタンがユーザーに表示されないようにします。)これが両方に対する私の提案です。
それが最初の問題である場合は、アクティビティにブールフラグを追加してみませんか?たとえば、onClickyourbuttonがメソッドnextActivityをトリガーするとします。アクティビティの開始時にはfalseであるが、終了時にはtrueに設定される変数buttonReadyを作成しますonCreate()
。おそらく、そのモンスター画像の処理が完了したときです。次に、トリガーするメソッドに条件を追加するだけです
public void nextActivity(View v){
if(buttonReady){
//start your next activity
} else {
Log.d("Button click", "Still loading. . .);
}
}
このようにして、ボタンをクリックする機能を無効にするのではなく、効果だけを無効にします。画像が読み込まれるまでボタンを使用したくないという問題がある場合は、同様のアプローチに従います。ビットマップの処理が完了するまでボタンを使用findViewById
して非表示に設定し、ボタンを表示します。
onClick
他のアクティビティの画像が読み込まれるまでボタンを遅らせたいという問題がある場合、それはより困難です。私の問題は、少なくとも最初の起動時に、画像がロードされないことです-それらを使用しているアクティビティ内でビットマップを処理していると仮定します。この状況では、2つの考えられる提案があります。
(1)上記のように画像が処理されるまでボタンを非表示に設定し、画像が読み込まれたときにボタンを元に戻します。たとえば、非表示にするには:
View button = findViewById(R.id.button);
button.setVisibility(View.GONE);(
(2)画像キャッシュを作成し、最初のアクティビティ中にそこに画像をロードし、キャッシュにデータが入力された後、他のアクティビティからそれらにアクセスします。ビットマップのキャッシュについて詳しくは、こちらをご覧ください。
この提案を機能させるには、Androidドキュメントで説明されている方法を少し変更する必要があります。1つのアクティビティにキャッシュを含めるのではなく、単一パターンのようなものを使用して、アプリ全体でアクセスできるキャッシュを開始します。そうすれば、バイマップを1回だけロードする必要があります。