2012-11-17 178 views
3

大家好,我需要製作一個自定義水平進度條,如下圖所示。如何在「android水平進度條」中繪製垂直線

Desidered custom horizontal progress bar

而且我已經設計在 的進度條類似下面使用圖層列表中的圖像繪製:

My progress bar

我想畫一條垂直線時的進展大於25像我需要的圖像 。我寫了這段代碼,但沒有奏效。

myProgressBar = (ProgressBar) findViewById(R.id.progress); 
Canvas canvas = new Canvas(); 
Paint p = new Paint(); 
p.setStrokeWidth(2); 
p.setColor(Color.WHITE); 
canvas.drawLine(a, b, c, d, p); 

if(myProgressBar.getProgress() > 25){ 
    myProgressBar.draw(canvas); 
} 

所以請幫助我在進度條中畫一條垂直線。這是我在堆棧溢出中的第一個 問題,因此可能會有一些錯誤對此感到抱歉。

回答

0

從我的觀點是,uhave渲染該線時,它大於25 .. 試試這個,還是讓我知道

if(myProgressBar.getProgress() > 25){ 
    canvas.drawLine(a, b, c, d, p); 
    myProgressBar.draw(canvas); 
} 
0

您可以嘗試使用圖層列表

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@android:id/background"> 
     <shape> 
      <corners android:radius="3dip" /> 
      <gradient 
       android:angle="0" 
       android:endColor="#e9e9f4" 
       android:startColor="#e9e9f4" /> 
     </shape> 
    </item> 
    <item android:id="@android:id/progress"> 
     <clip> 
      <shape> 
       <corners android:radius="5dip" /> 
       <gradient 
        android:angle="0" 
        android:endColor="#16a023" 
        android:startColor="#16a023" /> 
      </shape> 
     </clip> 
    </item> 
    <item android:id="@+id/line" > 
     <rotate android:fromDegrees="90" android:pivotX="10%" > 
      <shape android:shape="line" > 
       <stroke android:width="2dp" android:color="#ffffff" /> 
      </shape> 
     </rotate> 
    </item> 
</layer-list>