如何在没有XML的情况下创建水平progessBar或如何在没有XML contentView的情况下声明XML属性?
我在.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);
哦,它不能是一个弹出窗口。我需要在启用触摸的画布层之上的progressBar ..
答案 0 :(得分:22)
在构造函数中,执行以下操作:
ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
您可以使用AttributeSet替换null,通常您无论如何都需要Android的AttributSets。 然后,您可以使用标准的View方法设置其宽度/位置。
答案 1 :(得分:1)
您可以使用LevelListDrawable,如下所示:
LevelListDrawable mLevels;
mLevels = (LevelListDrawable)getContext().getResources().getDrawable( R.drawable.stat_levels);
stat_levels 是drawables中的xml文件,包含以下内容;
<?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是不同级别的drawable。
这可用于根据您的需求设置级别:mLevels.setLevel(mLevel);
mLevel可以是maxLevel,即0,10,20,40,60,80,100。