我正在尝试使帧动画保持在图像视图的中心,在该图像视图中,在下载图像之前播放动画。基本上它是一个加载微调器的动画。这是我在xml文件中的imageview。
<TableRow
android:gravity="center" >
<ImageView
android:id="@+id/imageViewUrl1"
android:layout_width="0dp"
android:layout_height="94dp"
android:layout_gravity="center"
android:layout_weight="0.5"
android:adjustViewBounds="true"
android:gravity="center"
android:onClick="OnClickThumbnail"
android:paddingTop="10dp"
android:scaleType="fitCenter"
android:textColor="@android:color/white"
android:src="@drawable/frameblack" />
这是我的frame xml文件
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item android:drawable="@drawable/framezero" android:duration="60" />
<item android:drawable="@drawable/frameone" android:duration="60" />
<item android:drawable="@drawable/frametwo" android:duration="60" />
<item android:drawable="@drawable/framethree" android:duration="60" />
<item android:drawable="@drawable/framefour" android:duration="60" />
<item android:drawable="@drawable/framefive" android:duration="60" />
<item android:drawable="@drawable/framesix" android:duration="60" />
<item android:drawable="@drawable/frameseven" android:duration="60" />
<item android:drawable="@drawable/frameeight" android:duration="60" />
<item android:drawable="@drawable/framenine" android:duration="60" />
<item android:drawable="@drawable/frameten" android:duration="60" />
</animation-list>
这是我用来启动动画的代码
final ImageView imageView = (ImageView) findViewById(R.id.imageViewUrl1);
AnimationDrawable yourAnimation;
imageView.setBackgroundResource(R.drawable.loadinganim);
yourAnimation = (AnimationDrawable) imageView.getBackground();
yourAnimation.start();
问题是动画会拉伸图像视图的整个宽度和高度。 imageview设置为fitCenter。我怎么能避免这种拉伸?
答案 0 :(得分:0)
我有同样的问题,问题是因为动画使用背景
解决方案是:
使用animationList的图片在drawble文件夹中创建xml位图,并将重力设置为居中
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="fill|center"
android:src="@drawable/btn_wifi_anim_3" >
</bitmap>
在运行时设置动画布局的宽度,如高度。
wifiAnim.setLayoutParams(new LinearLayout.LayoutParams(wifiAnim.getHeight(), wifiAnim.getHeight()));