Анимация ImageView в масштабе XML делает изображение псевдонимом

1

У меня есть небольшая анимация xml, которая анимирует несколько ImageViews внутри моего макета. На самом деле это анимация wavecale из примера api demos sdk. Эта анимация масштабирует изображение вверх, а затем вниз до его первоначального размера, поэтому выглядит как волна. Проблема в том, когда изображение масштабируется, оно выглядит очень плохо, края сглажены, а изображение является блочным. Моя анимация выглядит так:

<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>

Я попробовал вместо загрузки изображения непосредственно в src ImageView, чтобы обернуть его в элемент xml bitmap и включить сглаживание и фильтрацию, но это не имеет никакого значения.

<?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 и масштабирования его снова.

Можете ли вы, пожалуйста, помочь мне сделать изображение более гладким, если оно анимировано?

Теги:
filter
animation
imageview

1 ответ

0

У вас есть правильный размер изображения на основе DPI вашего устройства? Несмотря на то, что изображение выглядит большим на экране вашего ПК, изображение может быть небольшим на экране телефона из-за большего количества точек на дюйм. Если это так, Android придется масштабировать изображение вверх.

  • 0
    Да, у меня правильный размер изображения. Как я уже упоминал, изображение на самом деле уменьшено, и я также протестировал как с маленьким, так и с высоким разрешением на дюйм как на эмуляторе, так и на реальном устройстве, и нет никакой разницы - поведение остается таким же, как я описал выше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню