2011-01-24 26 views
9

Cách tạo progessBar ngang không có XML hoặc cách khai báo các thuộc tính XML mà không có XML contentView?Android - tạo lập trình xem theo tiến độBar

Tôi có bố cục trong tệp .java và tôi muốn đặt progressBar thành ngang và đặt chiều rộng/vị trí của nó.

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); 

Ồ, và nó không thể là cửa sổ bật lên. Tôi cần ProgressBar trên lớp vải cảm ứng ..

+0

Bất kỳ may mắn bị này để làm việc? – hopia

+0

@hopia yea, nhưng tôi hầu như không nhớ nó .. Đã làm một cái gì đó như thế này: RelativeLayout rl = new RelativeLayout (this); \t \t setContentView (rl); \t \t bảng điều khiển = Bảng điều khiển mới (nội dung này, W, H); \t \t panel.requestFocus(); \t \t rl.addView (bảng điều khiển); \t \t pb = ProgressBar mới (điều này, null, android.R.attr.progressBarStyleHorizontal); \t \t pb.setLayoutParams (LayoutParams mới (sWidth, 10)); \t \t rl.addView (pb); \t \t setContentView (rl); – yosh

Trả lời

22

Trong constructor, làm điều này:

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

Bạn có thể thay thế các null với một AttributeSet, thường bạn sẽ cần một trong AttributSets Android anyway. Sau đó, bạn có thể đặt chiều rộng/vị trí của nó bằng cách sử dụng các phương pháp Xem chuẩn.

+2

Bạn có thể cho tôi biết chính xác làm cách nào để thêm các thuộc tính này? Mã này là tốt, mang lại cho tôi thanh cuộn ngang nhưng tôi tiếp tục nhận được lỗi crit (tôi ra khỏi công việc, không thể nói bây giờ nó là gì) khi tôi muốn thêm phong cách cụ thể từ style.xml như xml thuộc tính thiết lập trong constructor. – yosh

1

Bạn có thể sử dụng LevelListDrawable cho điều này như sau:

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

stat_levels là tập tin xml hợp thuộc tính chứa sau điều;

<?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 là các mức độ khác nhau.

này có thể được sử dụng để thiết lập mức trên cơ sở nhu cầu của bạn: mLevels.setLevel(mLevel);

mLevel có thể maxLevel tức là 0, 10, 20, 40, 60, 80, 100.

Các vấn đề liên quan