imageview微调器/进度条不旋转

时间:2012-08-25 11:00:19

标签: android rotation progress-bar imageview geometry

在我的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>

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我有类似的问题,并没有真正了解baeckerman83解决方案。在源代码中探索之后,似乎进度条使用setLevel为其drawables设置动画。如果您仍坚持使用进度条,那么我所做的就是:

...
((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);
}