Java Android-以编程方式创建视图进度条

Java Android-以编程方式创建视图进度条,java,android,layout,progress-bar,Java,Android,Layout,Progress Bar,如何在没有XML的情况下创建水平ProgesBar,或者如何在没有XML contentView的情况下声明XML属性 我在.java文件中有布局,我想将progressBar设置为水平,并设置其宽度/位置 RelativeLayout fv = new RelativeLayout(this); panel = new Panel(this); fv.addView(panel); ProgressBar pb = new ProgressBar(this); //pb.? - progres

如何在没有XML的情况下创建水平ProgesBar,或者如何在没有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..

在构造函数中,执行以下操作:

ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
您可以用AttributeSet替换空值,通常您需要一个Android的AttributeSet。
然后,您可以使用标准视图方法设置其宽度/位置。

您可以使用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是不同级别的可抽取项

这可用于根据您的需要设置级别:
mLevels.setLevel(mLevel)


mLevel可以是maxLevel,即0、10、20、40、60、80、100。

您能告诉我如何准确添加这些属性吗?这段代码很好,给了我水平滚动条,但当我想从style.xml中添加特定样式作为构造函数中的xml属性集时,我不断收到crit错误(我没工作了,现在不知道是什么)。这一切顺利吗?@hopia是的,但我几乎记不起来了。。做了这样的事情:RelativeLayout rl=新的RelativeLayout(this);setContentView(rl);面板=新面板(此,内容,W,H);panel.requestFocus();rl.addView(面板);pb=新的ProgressBar(this,null,android.R.attr.progressBarStyleHorizontal);pb.setLayoutParams(新的LayoutParams(sWidth,10));rl.addView(pb);setContentView(rl);