以编程方式设置进度条进度颜色 [英] Set Progress bar progress color programatically

查看:190
本文介绍了以编程方式设置进度条进度颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在下载文件时显示进度条.我想设置来自服务器的进度颜色(HTML颜色代码),并且可能会不时更改颜色代码. 我如何满足要求.

I am showing the progress bar while downloading files.I want to set the color(HTML color code) of the progress which comes from the server and may vary the color code time to time. how do i meet the requirement.

.

例如,对于上面的图像,我想更改黄色并设置服务器附带的颜色.

For example for the above image i want to change yellow color and set the color which comes server.

推荐答案

所以...我制作了一个示例项目,该项目可以更改进度颜色,还可以更改背景进度栏颜色.

So...I made a sample project that changes the progress color and you also can change the background progress bar color.

首先创建一个自定义进度条xml文件.

First create a custom progress bar xml file.

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

Drawable draw=getResources().getDrawable(R.drawable.custom_progressbar); progressBar.setProgressDrawable(draw);

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

}

输出将是这样:

希望这是您要寻找的东西.干杯

Hope this is what you where looking for. Cheers

有关更多信息,您会发现此有用:堆栈进度栏文章

For more info you will find this usefull: stack progress bar post

这篇关于以编程方式设置进度条进度颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆