2

重複の可能性:
スケーリングせずに ImageView の幅をアニメーション化する

私がやろうとしているのは、ImageView が左から右に表示されるアニメーションを作成することです (クリッピング アニメーション?)。画像は拡大縮小しないでください。

scaleType を変更してから、ScaleAnimation をその ImageView に直接適用してみました。

レイアウト:

<ImageView
    android:id="@+id/graphImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:scaleType="centerCrop"
    android:background="@android:color/transparent"
    android:contentDescription="@string/stroom_grafiek"
    />

ジャワ:

scale = new ScaleAnimation((float)0,
        (float)1, (float)1, (float)1,
        Animation.RELATIVE_TO_SELF, (float)0,
        Animation.RELATIVE_TO_SELF, (float)1);
scale.setDuration(1000);

graphImage.startAnimation(scale);

また、ImageView を RelativeLayout 内に配置してから、アニメーションを RelativeLayout に適用しようとしました。

レイアウト:

<RelativeLayout 
    android:id="@+id/graphImageInnerWrap"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/transparent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:clipChildren="true"
    >
    <ImageView
        android:id="@+id/graphImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="matrix"
        android:background="@android:color/transparent"
        android:contentDescription="@string/stroom_grafiek"
        />
</RelativeLayout>

ジャワ:

scale = new ScaleAnimation((float)0,
        (float)1, (float)1, (float)1,
        Animation.RELATIVE_TO_SELF, (float)0,
        Animation.RELATIVE_TO_SELF, (float)1);
scale.setDuration(1000);

graphImageInnerWrap.startAnimation(scale);

どちらの場合も、ImageView はまだスケーリングされています。誰かが私を正しい方向に向けてくれることを願っています。

4

1 に答える 1

9

アニメーションを次のように翻訳してみてください

Animation animation1=new TranslateAnimation(0.0f, 200.0f, 0.0f, 0.0f);
animation1.setDuration(5000);
imageview.startAnimation(animation1);

TranslateAnimation(fromX, toX, fromY, toY)上記のコードで行ったように、座標を設定できます

于 2012-10-22T13:20:50.757 に答える