ImageView中的Android动画是垂直拉伸的

时间:2011-09-14 09:49:44

标签: android android-layout android-animation

当我使用ImageView显示这样的png图像时,一切看起来都很完美:

<ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/png_picture"
     android:src="@drawable/paos_connection"/>

图像完美缩放,水平填充屏幕并具有正确的宽高比。

现在,我想用动画替换图像。我决定使用框架动画,如下所示:http://developer.android.com/guide/topics/graphics/view-animation.html。我使用相同大小的png文件(原始文件略有修改的副本)。

我的问题是动画正在播放,它像以前一样水平填满屏幕,但现在它是垂直拉伸的。我可以通过对高度进行硬编码来强制它具有正确的高度:

<ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="210px" 
     android:id="@+id/animation" />

...但显然这不是一个好的解决方案,因为图像应该在所有屏幕尺寸上具有正确的宽高比。

2 个答案:

答案 0 :(得分:1)

这可能会有所帮助。我发现没有很多步法,你就会使用固定元素,除非在初始化时按照其余布局顺序绘制图像。

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

尝试快速破解的是在其位置设置透明图像,其尺寸与动画图像相同。使用宽度和宽度以编程方式创建ImageView。渲染透明图像的高度。然后,为实例化的图像设置动画。

答案 1 :(得分:0)

不是在imageview的背景中设置可绘制的动画,而是使用src将其设置在前景中,然后让动画在那里播放。如果您为图像视图设置了合适的比例类型,则框架动画中的所有图像都将以完整的宽高比调整大小。