在我的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>
答案 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);
}