自定义进度可绘制有时不显示

时间:2012-10-18 16:02:46

标签: android progress-bar

我有一个非常奇怪的问题 - 我为进度条和

定义了一个自定义进度drawable

有时会显示,有时则不显示。

我尝试清理我的项目,重新启动eclipse甚至重新启动计算机。

它仍然会发生。

这是进度可绘制的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
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="5dp" />
    <gradient
        android:startColor="#6f7754"
        android:endColor="#858762"
        android:angle="90"/>
</shape>
</item>

<item android:id="@android:id/secondaryProgress">
<clip>
    <shape 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">

        <corners android:radius="5dp" />
        <gradient
                android:startColor="#ffba00"
                android:endColor="#af6c03"
                android:angle="90"/>
    </shape>
</clip>
</item>

<item android:id="@android:id/progress">
<clip>
    <shape 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">

        <corners
            android:radius="5dp" />
        <gradient
            android:startColor="#ffba00"
            android:endColor="#af6c03"
            android:angle="90" />
    </shape>
</clip>

这是我使用它的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="2dp"
android:background="@drawable/quick_action_item_btn">

<ImageView
    android:id="@+id/icon" 
    android:layout_width="21dp" 
    android:layout_height="21dp"
    android:scaleType="centerInside"/>

<ProgressBar 
    android:id="@+id/progress"
    android:layout_width="20dp"
    android:layout_height="4dp"
    android:layout_marginTop="2dp"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:progressDrawable="@drawable/achievement_progress_bar"/>

</LinearLayout>

3 个答案:

答案 0 :(得分:8)

试试这个

android:indeterminateDrawable="@drawable/yourXML"

它对我有用..

答案 1 :(得分:0)

也许这与此问题类似...... SharedPreferences.onSharedPreferenceChangeListener not being called consistently

自定义xml是否定义为活动的变量?如果没有,也许垃圾收集器正在收集它。我的建议是使它成为类的一个字段变量(活动类)。

答案 2 :(得分:0)

它对我来说很好。只需将你的indeterminateDrawable设置为你的custum xml文件。它应该没问题。