2011-01-24 4 views
9

XMLなしで水平progessBarを作成する方法、またはXML contentViewを使用せずにXMLプロパティを宣言する方法?Android - プログラマチックにビューのprogressBarを作成する

私は.javaファイルのレイアウトを持っており、progressBarを水平に設定して幅/位置を設定したいとします。

RelativeLayout fv = new RelativeLayout(this); 
panel = new Panel(this); 
fv.addView(panel); 
ProgressBar pb = new ProgressBar(this); 
//pb.? - progress bar parameters 
fv.addView(pb); 
setContentView(fv); 

ああ、ポップアップウィンドウではありません。私は、コンストラクタで

+0

することができますか? – hopia

+0

@hopia yeaしかし、私はほとんど覚えていません。このようなことをしましたか?RelativeLayout rl = new RelativeLayout(this); \t \t setContentView(rl); \t \tパネル=新しいパネル(this、content、W、H); \t \t panel.requestFocus(); \t \t rl.addView(panel); \t \t pb = new ProgressBar(this、null、android.R.attr.progressBarStyleHorizo​​ntal); \t \t pb.setLayoutParams(新しいLayoutParams(sWidth、10)); \t \t rl.addView(pb); \t \t setContentView(rl); – yosh

答えて

22

..タッチ対応帆布層の上にプログレスバーを必要とし、次の操作を行います。

ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); 

あなたは通常、あなたがとにかくAndroidのAttributSetsの1が必要になり、属性セットでヌルを置き換えることができます。 標準のViewメソッドを使用して幅/位置を設定できます。

+2

これらの属性をどのくらい正確に追加できますか?このコードは良いですが、私に水平スクロールバーを与えますが、私はコンストラクタで設定されたxml属性としてstyle.xmlから特定のスタイルを追加したいときにcritエラー(作業中です。 – yosh

1

あなたは次のように、このためにLevelListDrawableを使用することができます。はドローアブルでxmlファイルは、以下のものが含まれている

LevelListDrawable mLevels; 
mLevels = (LevelListDrawable)getContext().getResources().getDrawable(R.drawable.stat_levels); 

stat_levelsを。

<?xml version="1.0" encoding="utf-8"?> 
<level-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:maxLevel="0" android:drawable="@drawable/stat_0" /> 
<item android:maxLevel="10" android:drawable="@drawable/stat_10" /> 
<item android:maxLevel="20" android:drawable="@:drawable/stat_20" /> 
<item android:maxLevel="40" android:drawable="@drawable/stat_40" /> 
<item android:maxLevel="60" android:drawable="@drawable/stat_60" /> 
<item android:maxLevel="80" android:drawable="@drawable/stat_80" /> 
<item android:maxLevel="100" android:drawable="@:drawable/stat_100" /> 
</level-list> 

stat_0 - stat_100は、異なるレベルのドロワーブルです。

これはあなたの必要性を拠点にレベルを設定するために使用することができます。mLevels.setLevel(mLevel);

mLevelはどれ運はこれが動作するようになってmaxLevelすなわち0、10、20、40、60、80、100

関連する問題