Итак... Я сделал пример проекта, который меняет цвет прогресса, и вы также можете изменить цвет фонового индикатора выполнения.
Сначала создайте собственный xml-файл индикатора выполнения.
custom_progressbar.xml
<!-- Define the background properties like color etc -->
<item android:id="@android:id/background">
<shape>
<gradient
android:startColor="#000001"
android:centerColor="#0b131e"
android:centerY="1.0"
android:endColor="#0d1522"
android:angle="270"
/>
</shape>
</item>
<!-- Define the progress properties like start color, end color etc -->
<item android:id="@android:id/progress">
<clip>
<shape>
<gradient
android:startColor="#2A98E1"
android:centerColor="#2A98E1"
android:centerY="1.0"
android:endColor="#06101d"
android:angle="270"
/>
</shape>
</clip>
</item>
Макет деятельности:
activity_my.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal"
tools:context=".MyActivity">
<ProgressBar
android:id="@+id/myProgress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_weight="0.7"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/progressTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="None"/>
</LinearLayout>
Тестовая деятельность:
Важная часть заключается в следующем:
Drawable draw=getResources().getDrawable(R.drawable.custom_progressbar); progressBar.setProgressDrawable(рисовать);
MyActivity.java
private ProgressBar progressBar;
private Handler handler = new Handler();
private int progressStatus = 0;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
init();
initProgresBar();
}
public void init(){
textView = (TextView) findViewById(R.id.progressTextView);
progressBar = (ProgressBar) findViewById(R.id.myProgress);
Drawable draw=getResources().getDrawable(R.drawable.custom_progressbar);
// set the drawable as progress drawable
progressBar.setProgressDrawable(draw);
}
public void initProgresBar(){
new Thread(new Runnable() {
public void run() {
while (progressStatus < 100) {
progressStatus += 1;
// Update the progress bar and display the
//current value in the text view
handler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressStatus);
textView.setText(progressStatus+"/"+progressBar.getMax());
}
});
try {
// Sleep for 200 milliseconds.
//Just to display the progress slowly
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
И вывод будет таким:
![введите здесь описание изображения](https://i.stack.imgur.com/AjNEV.png)
Надеюсь, это то, что вы ищете. Ваше здоровье
Для получения дополнительной информации вы найдете это полезным: сообщение о индикаторе выполнения стека
person
MSA
schedule
18.09.2014