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