Android:帧动画延伸到查看大小

时间:2012-11-09 13:43:53

标签: android animation

我正在尝试使帧动画保持在图像视图的中心,在该图像视图中,在下载图像之前播放动画。基本上它是一个加载微调器的动画。这是我在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。我怎么能避免这种拉伸?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,问题是因为动画使用背景

解决方案是:

  1. 使用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>
    
  2. 在运行时设置动画布局的宽度,如高度。

    wifiAnim.setLayoutParams(new LinearLayout.LayoutParams(wifiAnim.getHeight(),  wifiAnim.getHeight()));