2009-04-01 6 views

答えて

23

SDK内のApiDemosで詳しく説明しています。 希望する例の名前はProgressBar3.javaで、¥ApiDemos¥src¥com¥example¥android¥apis¥view¥

また、ダイアログの罫線を削除してプログレスバーだけが表示され、ダイアログ自体を透明なビュー/オーバーレイとして定義することができます(例でも説明しています)。

3

@reflog: それは私が推測する必要はありません。

@lostInTransit:次のように

これを達成するための正しい方法は次のとおりです。

  1. は、ダイアログウィンドウの背景を設定するダイアログ
  2. 上の唯一のビューとして
  3. 入れプログレスバーウル独自のダイアログを作成します。 transparent
  4. ダイアログを表示します。それだ

。それは1.5から2.1のデバイスで私のために働く。 2.2では試していません。

-Yogesh

22

ダイアログが必要ない場合は、他のビューアイテムと同様にprogressBarをレイアウトに配置し、デフォルトでは表示を「INVISIBLE」または「GONE」に設定します。

コード内でsetVisibilityを使用して 'VISIBLE'に変更する必要があるときはいつでも表示し、もう一度 'INVISIBLE'または 'GONE'にしてタスクを終了すると再び非表示にします。

MyTask { 

// get handle on ProgressBar ViewItem defined in XML (id:progressBar) 

ProgressBar progressBar = findViewById(R.id.progressBar); 


//starting task, show progress bar 

progressBar.setVisibility(View.VISIBLE); 


// Do some stuff... 


//task done, hide it again 

progressBar.setVisibility(View.GONE); 

} 

これはすべてUIスレッドで行われる単純なバージョンですが、非同期タスクまたはスレッドハンドラを使用している場合は、これを適応させるのが簡単です。あなたがUIスレッド中にダイアログに何か更新を表示、非表示、投稿するだけで、バックグラウンドで長時間の作業を行います。

+0

この作品は私にはありがたいです。 = D 'imgname =(ImageView)v.findViewById(getResources()。getIdentifier(" idimage "、" id "、mContext.getPackageName()));' – Florida

2

@Jesse Finnertyの回答が私の問題を解決しました。私が何をしたか されました:

private ProgressBar mprogressBar; 

ちょうど私がやった他のボタンとtextviews、 mprogressBar =(プログレス)findViewById(R.idのような内部のOnCreate()。プログレスバー);

は、その後の時点で私は私はそれが消えるしたいポイントでコマンドを

mprogressBar.setVisibility(View.VISIBLE); 

を与える表示されるようにホイールを回転します。

mprogressBar.setVisibility(View.INVISIBLE); 

これは実際にはスイッチではありません。私のプログラムの状態が変わると、プログレスバーが現れて消えます。

関連する問題