2011-01-24 3 views
9

Как создать горизонтальный progessBar без XML или как объявить свойства XML без XML contentView?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); 

О, и это не может быть всплывающее окно. Мне нужно ProgressBar на вершине с сенсорным экраном холст слой ..

+0

Любой удачи получать эту работу? – hopia

+0

@hopia да, но я это почти не помню .. Что-то вроде этого: RelativeLayout rl = new RelativeLayout (this); \t \t setContentView (rl); \t \t panel = новая панель (это, содержание, W, H); \t \t panel.requestFocus(); \t \t rl.addView (панель); \t \t pb = новый ProgressBar (это, null, android.R.attr.progressBarStyleHorizontal); \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); 

Вы можете заменить нуль с AttributeSet, как правило, вам потребуется один из AttributSets Android, в любом случае. Затем вы можете установить его ширину/местоположение, используя стандартные методы просмотра.

+2

Можете ли вы рассказать мне, как именно я могу добавить эти атрибуты? Этот код хорош, дает мне горизонтальную полосу прокрутки, но я продолжаю получать критическую ошибку (я не работаю, теперь не могу сказать, что это было), когда я хочу добавить определенный стиль из style.xml в качестве атрибута xml, установленного в конструкторе. – yosh

1

Вы можете использовать LevelListDrawable для этого следующие:

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

stat_levels является 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 может быть МАКСЛЕВЕЛИ 0 т.е., 10, 20, 40, 60, 80, 100.

Смежные вопросы