当我使用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" />
...但显然这不是一个好的解决方案,因为图像应该在所有屏幕尺寸上具有正确的宽高比。
答案 0 :(得分:1)
这可能会有所帮助。我发现没有很多步法,你就会使用固定元素,除非在初始化时按照其余布局顺序绘制图像。
http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
尝试快速破解的是在其位置设置透明图像,其尺寸与动画图像相同。使用宽度和宽度以编程方式创建ImageView。渲染透明图像的高度。然后,为实例化的图像设置动画。
答案 1 :(得分:0)
不是在imageview的背景中设置可绘制的动画,而是使用src将其设置在前景中,然后让动画在那里播放。如果您为图像视图设置了合适的比例类型,则框架动画中的所有图像都将以完整的宽高比调整大小。