1

在我的 android 应用程序中,我尝试像在其他一些应用程序中一样实现自己的进度条。因此,如果我的客户单击一个按钮,则刷新图像将替换为一个旋转的圆圈。但我的圈子没有旋转。我在 xml 布局中添加了我的旋转圆圈来测试旋转的 xml。

<ImageView android:layout_gravity="center_vertical" android:contentDescription="@string/liga" android:layout_height="40dp" android:layout_width="40dp" android:clickable="true" android:id="@+id/iv_refresh" android:src="@drawable/progress_medium_holo" ></ImageView>

这是我的旋转 xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate
             android:drawable="@drawable/spinner_48_outer_holo"
             android:pivotX="50%"
             android:pivotY="50%"
             android:fromDegrees="0"
             android:toDegrees="1080" />
    </item>
    <item>
        <rotate
             android:drawable="@drawable/spinner_48_inner_holo"
             android:pivotX="50%"
             android:pivotY="50%"
             android:fromDegrees="720"
             android:toDegrees="0" />
    </item>
</layer-list>
4

2 回答 2

0

现在我找到了解决方案

我用了

        ImageView iv_refresh = (ImageView) activity.findViewById(R.id.iv_refresh);
        Animation hyperspaceJump = AnimationUtils.loadAnimation(activity, R.anim.loading);

使用动画资源 http://developer.android.com/guide/topics/resources/animation-resource.html

于 2012-08-26T19:41:10.863 回答
0

我有一个类似的问题,并没有真正理解 baeckerman83 解决方案。在源代码中四处寻找之后,进度条似乎使用 setLevel 为其可绘制对象设置动画。如果你仍然坚持使用进度条继承人我做了什么:

...
((ImageView)findViewById(R.id.image_view)).setImageResource(R.id.progress_large_holo)
...
@Override
protected void onDraw (Canvas canvas) {
    LayerDrawable ld= (LayerDrawable)((ImageView)findViewById(R.id.image_view)).getDrawable();
    for (int i=0; i<ld.getNumberOfLayers(); i++) {
        // Really slow
        ld.getDrawable(i).setLevel((int) (System.currentTimeMillis() % 10000));
    }
    super.onDraw(canvas);
}
于 2012-09-02T00:02:55.320 回答