Android – 以编程方式创build视图progressBar

如何创build没有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); 

哦,它不能是一个popup窗口。 我需要在启用触摸的canvas层上进度条

Solutions Collecting From Web of "Android – 以编程方式创build视图progressBar"

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

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

你可以用一个AttributeSetreplacenull,通常你需要一个Android的AttributSets。 然后可以使用标准的View方法来设置其宽度/位置。

你可以使用LevelListDrawable作为如下:

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

stat_levels是xml文件,在drawables中包含下面的东西;

 <?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。