我正在尝试将帧动画设置为Imageview。
imageAnim = (ImageView) rootView.findViewById(R.id.orderCards);
imageAnim.setBackgroundResource(R.drawable.image_switcher_anim);
imageAnim.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT));
anim = (AnimationDrawable) imageAnim.getBackground();
anim.start();
所有图像视图属性(如高度宽度,比例类型)都将丢失。 我知道这是因为将动画设置为背景资源而且图像将在没有scaletype的情况下显示。
我看到两种可能性 有没有办法设置动画而不将其设置为背景以避免此问题? 要么 可以为图像背景设置高度宽度等属性。
答案 0 :(得分:0)
试试这个:
imageAnim.invalidateDrawable(anim);
这将重绘图像视图。
答案 1 :(得分:0)
我在另一个链接上找到了答案 Android animation with multiple jpeg files?
我们需要在anim文件夹中设置动画文件,将其设置为imageview的源,getdrawable而不是getResourceBackground并将其分配给animationDrawable并启动动画。这样就可以保持imageview的所有布局属性。
xml代码
<ImageView android:id="@+id/orderCards
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@anim/image_switcher_anim"/>
Java代码
imageAnim = (ImageView) rootView.findViewById(R.id.orderCards);
anim = (AnimationDrawable) imageAnim.getDrawable();
imageAnim.post(run);
Runnable run = new Runnable() {
@Override
public void run() {
anim.start();
}
};