Mam małą animację xml, która ożywia niewieleImageViews w moim układzie. Właściwie jest to animacja wavecale z przykładu api demos sdk. Ta animacja skaluje obraz, a następnie w dół do jego pierwotnego rozmiaru, więc wygląda na falę. Problem polega na tym, że obraz jest przeskalowany, wygląda bardzo źle, krawędzie są aliasingowane, a obraz jest zablokowany. Moja animacja wygląda następująco:
<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>
Zamiast ładować obraz bezpośrednio w src ImageView, próbowałem go zawinąć w element bitmapowy xml i włączyć wygładzanie i filtrowanie, ale nie robi to żadnej różnicy.
<?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"
/>
A mój ImageView wygląda tak:
<ImageView android:src="/images/@drawable/myimage" android:layout_height="wrap_content" android:layout_margin="5dp" android:adjustViewBounds="true" android:layout_width="fill_parent" android:scaleType="centerInside"></ImageView>
Należy również pamiętać, że obraz nie jest tak naprawdęskalowane. Sam obraz jest większy, niż pojawia się na ekranie. Jest wyśrodkowany wewnątrz ImageView. Wygląda jednak na to, że animacja nie korzysta z oryginalnego obrazu w celu renderowania go w innym rozmiarze, ale przy użyciu przeskalowanego obrazu z ImageView i skalowania go ponownie.
Czy możesz mi pomóc, aby mój obraz wyglądał gładko, gdy jest animowany?
Odpowiedzi:
0 dla odpowiedzi № 1Czy masz odpowiedni rozmiar obrazu na podstawie swojegourządzenie DPI? Chociaż na ekranie komputera obraz wygląda na duży, obraz może być mały na ekranie telefonu z powodu większej liczby punktów na cal. W takim przypadku system Android będzie musiał skalować obraz w górę.