0

我使用下面的XML布局:如何改变进度颜色和高度的Android

<ProgressBar 
    android:id="@+id/totalScoreProgress" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAlignment="center" 
    android:layout_marginTop="29dp" 
    android:maxHeight="30dp" 
    android:minHeight="30dp" 
    android:indeterminateTint="@color/grey" 
    android:max="30"/> 

<TextView 
    android:id="@+id/bestResultText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/totalScoreProgress" 
    android:text="Best Result : 0" 
    android:textSize="15sp" /> 

和Java代码:

ProgressBar totalScoreProgress = (ProgressBar) findViewById(R.id.totalScoreProgress); 
totalScoreProgress.setProgress(30); 

这些都是我用文字灰色进度栏努力,我附上预期和实际产出的image。请指导我犯错的地方。

谢谢。

回答

0

确切解决问题的办法是:

  1. 在XML布局
  2. 定义定制progress_bar.xml进度条Java代码,申请bringToFront()带来bestScoreText以上totalScoreProgress进度

XML布局

<ProgressBar 
    android:id="@+id/totalScoreProgress" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAlignment="center" 
    android:theme="@style/CustomProgressBarHorizontal" 
    android:progressDrawable="@drawable/progress_bar" 
    android:max="30"/> 

<TextView 
    android:id="@+id/bestResultText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/totalScoreProgress" 
    android:text="Best Result : 0" 
    android:textSize="15sp" /> 

progress_bar.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@android:id/progress"> 
     <clip> 
      <shape> 
       <corners android:radius="5dip" /> 

       <solid android:color="@color/grey" /> 
      </shape> 
     </clip> 
    </item> 
</layer-list> 

Java代码的

ProgressBar totalScoreProgress = (ProgressBar) findViewById(R.id.totalScoreProgress); 
totalScoreProgress.setProgress(30); 
TextView bestScoreText = (TextView) findViewById(R.id.bestResultText); 
bestScoreText.bringToFront(); 
1

更改以下主题进度使用higth在你的风格

<style name="CustomProgressBarHorizontal" parent="android:Widget.ProgressBar.Horizontal"> 
    <item name="android:progressDrawable">@drawable/custom_progress_bar_horizontal</item> 
    <item name="android:minHeight">10dip</item> 
    <item name="android:maxHeight">20dip</item> 

改变prograss条的颜色创建一个可绘制progress_bar.xml文件

<?xml version="1.0" encoding="utf-8"?> 

<item android:id="@android:id/secondaryProgress"> 
    <clip> 
     <shape> 
      <corners android:radius="5dip" /> 

      <solid android:color="#f58233" /> 
     </shape> 
    </clip> 

    <color android:color="#f58233" /> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
     <shape> 
      <corners android:radius="5dip" /> 

      <solid android:color="#f58233" /> 
     </shape> 
    </clip> 

    <color android:color="#f58233" /> 
</item> 

</layer-list> 

无论是在您的progrss酒吧将此这样

<ProgressBar 
     android:id="@+id/progressBar1" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="200dp" 
     android:layout_height="3dip" 
     android:theme="@style/CustomProgressBarHorizontal" 
     android:progressDrawable="@drawable/progress_bar" /> 
1

你需要在你的XML指定绘制资源。

例如progress_background.xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@android:id/background"> 
     <shape> 
      <corners 
       android:radius="5dip"/> 
      <solid android:color="@color/grey"/> 
     </shape> 
    </item> 
    <item 
     android:id="@android:id/progress"> 
     <clip> 
      <shape> 
       <corners 
        android:radius="5dip"/> 
       <solid android:color="@color/blue"/> 
      </shape> 
     </clip> 
    </item> 
</layer-list> 

,然后用它喜欢:

<ProgressBar 
      android:id="@+id/pbLoadingProgress" 
      style="?android:attr/progressBarStyleHorizontal" 
      android:layout_width="match_parent" 
      android:layout_height="@dimen/your_progress_bar_height" 
      android:layout_gravity="bottom" 
      android:progressDrawable="@drawable/progress_background" />