使用多个可绘制的剪辑创建辅助进度条

时间:2015-09-22 05:25:26

标签: android android-drawable

我正在使用带有剪辑drawable的图层列表的imageview创建进度条,它就像一个魅力。这是代码:

背景可绘制的xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@android:id/background">
        <bitmap android:src="@drawable/energy_backing" >
        </bitmap>
    </item>
    <item android:id="@android:id/progress">
        <clip
            android:clipOrientation="horizontal"
            android:drawable="@drawable/energy_full"
            android:gravity="left" />
    </item>

</layer-list>

进度条的xml:

   <ImageView
                android:id="@+id/pbEnergyBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_marginBottom="20dp"
                android:layout_centerHorizontal="true"
                android:src="@drawable/progress_bar_energy2" />

然后我可以通过调用imageview.setImageLevel(progress)来设置进度。

我的问题是,如何添加默认ProgressBar中的辅助进度条?

我想添加另一个可绘制的剪辑但是如何在两个不同的剪辑上调用setLevel两次?任何指导!

谢谢

1 个答案:

答案 0 :(得分:0)

您可以添加另一个带有辅助图层列表的ImageView,并将其完全放在第一个ImageView的顶部...

编辑:实际上,您可以将if (Canvas.GetLeft(draggedImage) <= 0) { Canvas.SetLeft(draggedImage, 0); } if (Canvas.GetTop(draggedImage) <= 0) { Canvas.SetTop(draggedImage, 0); } if (Canvas.GetLeft(draggedImage) + this.imgX >= 800) { Canvas.SetLeft(draggedImage, 800 - this.imgX); } if (Canvas.GetTop(draggedImage) +this.imgY >= 600) { Canvas.SetTop(draggedImage, 600 - this.imgY); } 与您的drawable一起使用。

  • 使用ProgressBar

  • 将另一个图层添加到列表中
  • <item android:id="@android:id/secondaryProgress">ProgressBar

看看是否有效。