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

私は同様の問題を抱えていて、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 に答える
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 に答える