ImageView的Xml缩放动画使图像具有别名

时间:2011-04-12 14:57:01

标签: android animation filter imageview

我有一个小的xml动画,可以在我的布局中激活很少的ImageViews。实际上它是来自api demos sdk示例的wavescale动画。此动画将图像向上缩放,然后向下缩放到原始大小,使其看起来像波形。问题是当图像被放大时看起来非常糟糕,边缘是混叠的并且图像是块状的。 我的动画看起来像这样:

<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="100" />
    <scale
        android:fromXScale="0.5" android:toXScale="1.25"
        android:fromYScale="0.5" android:toYScale="1.25"
        android:pivotX="50%" android:pivotY="50%"
        android:duration="200" />
    <scale 
        android:fromXScale="1.25" android:toXScale="1.0"
        android:fromYScale="1.25" android:toYScale="1.0"
        android:pivotX="50%" android:pivotY="50%"
        android:startOffset="200"
        android:duration="100" />
</set>

我尝试过,而不是直接在ImageView的src中加载​​图像,将其包装在xml位图元素中并启用抗锯齿和过滤,但它没有区别。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/myimage_img"
    android:antialias="true"
    android:filter="true"
    android:tileMode="disabled"
/>

我的ImageView看起来像这样:

<ImageView android:src="@drawable/myimage" android:layout_height="wrap_content" android:layout_margin="5dp" android:adjustViewBounds="true" android:layout_width="fill_parent" android:scaleType="centerInside"></ImageView>

请注意,图片并未真正放大。屏幕上显示的图像本身更大。它位于ImageView内部。但看起来动画并没有使用原始图像以不同的大小渲染它,而是使用ImageView中的缩小图像并再次将其缩放。

在动画制作时,你可以帮助我让我的图像显得平滑吗?

1 个答案:

答案 0 :(得分:0)

您是否拥有基于设备DPI的正确图像尺寸?即使PC屏幕上的图像看起来很大,但由于每英寸点数较多,因此手机屏幕上的图像可能很小。如果是这种情况,Android将不得不缩小图像。