Java 在Android应用程序中使用XML更改进度条颜色

Java 在Android应用程序中使用XML更改进度条颜色,java,android,eclipse,colors,progress-bar,Java,Android,Eclipse,Colors,Progress Bar,我正在尝试更改水平进度条(前景)的颜色。我偶然发现并试图用它来建模我的XML文件。但是,在以下语句中出现编译器错误: myProgressBar.setProgressDrawable(R.drawable.progress_horizontal); 错误是“ProgressBar类型中的方法setProgressDrawable(Drawable)不适用于参数(int)。” 我相信原因是在R.java文件中,我看到了下面一行: public static final int progress

我正在尝试更改水平进度条(前景)的颜色。我偶然发现并试图用它来建模我的XML文件。但是,在以下语句中出现编译器错误:

myProgressBar.setProgressDrawable(R.drawable.progress_horizontal);
错误是“ProgressBar类型中的方法setProgressDrawable(Drawable)不适用于参数(int)。”

我相信原因是在R.java文件中,我看到了下面一行:

public static final int progress_horizontal=0x7f02002f;
那么,我是将这个XML文件定义为可绘制文件而不是整数,还是有其他方法来解决这个问题

谢谢

编辑:包括XML文件

<item android:id="@android:id/background">
    <shape>
        <corners android:radius="5dip" />
        <gradient
                android:startColor="#ff9d9e9d"
                android:centerColor="#ff5a5d5a"
                android:centerY="0.75"
                android:endColor="#ff747674"
                android:angle="270"
        />
    </shape>
</item>

<item android:id="@android:id/secondaryProgress">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#80ffd300"
                    android:centerColor="#80ffb600"
                    android:centerY="0.75"
                    android:endColor="#a0ffcb00"
                    android:angle="270"
            />
        </shape>
    </clip>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ffffd300"
                    android:centerColor="#ffffb600"
                    android:centerY="0.75"
                    android:endColor="#ffffcb00"
                    android:angle="270"
            />
        </shape>
    </clip>
</item>



R类由Android编译器生成,R.java中内部类的所有字段通过
Android:id
xml属性引用
res
文件夹中的资源。该类可以使用资源id检索资源对象。因此,您可以通过获取可绘制对象。

R类由Android编译器生成,R.java中内部类的所有字段通过
Android:id
xml属性引用
res
文件夹中的资源。该类可以通过使用资源id检索资源对象。因此,您可以通过获取可绘制对象。

在进度条xml元素上调用此函数


//---这是进步的背景
//----这是进度状态
//-这种颜色呈线性变化

在进度条xml元素上调用此选项


//---这是进步的背景
//----这是进度状态
//-这种颜色呈线性变化

Cool,编译正确。现在我只需要弄清楚如何正确使用XML文件。谢谢。很酷,编译得很好。现在我只需要弄清楚如何正确使用XML文件。谢谢
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@android:id/background">  //---this is progress background
   <shape>
     <corners android:radius="5dip" />
      <gradient
            android:startColor="#E6E6E6"
            android:centerColor="#E6E6E6"
            android:centerY="0.75"
            android:endColor="#E6E6E6"
            android:angle="270"/>
   </shape>
  </item>
  <item android:id="@android:id/progress">   //----this is progress status
   <clip>
   <shape>
      <gradient
            android:startColor="#FF0040"
            android:centerColor="#FFFF00"
            android:endColor="#00FF00"
            android:angle="0" />            //-This varies colors linearly
   </shape>
   </clip>
  </item>
</layer-list>