Сложно сказать, какой переход вы пытаетесь выполнить между этими двумя изображениями. Итак, вы хотите начать с черно-белого изображения, но переходит ли оно из черно-белого в цветное с помощью плавного затухания, или вы хотите постепенно применять фрагменты цветного изображения снизу вверх над черно-белым изображением?
Если последний вариант - ваш выбор, то ваше фактическое изображение будет состоять из двух элементов рисования вместе в <layer-list>
. Один статический, а другой представляет ClipDrawable
, который будет раскрывать часть цветного изображения на основе значения его уровня. Например, создайте файл XML:
Рез / рисуем / progress_background.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<bitmap android:src="@drawable/ic_launcher_bw"/>
</item>
<item>
<clip
android:clipOrientation="vertical"
android:gravity="bottom"
android:drawable="@drawable/ic_launcher"/>
</item>
</layer-list>
Затем установите это Drawable
на что-то вроде ImageView
, чтобы отобразить прогресс, и измените значение с помощью вызовов на setLevel()
, т.е.
//This is any view subclass that you have chosen to do this
ImageView progress;
progress.setImageResource(R.drawable.progress_background);
//Adjust the progress by adjusting the drawable's level
progress.setImageLevel(500);
// -- OR --
progress.getDrawable().setLevel(500);
Уровни рисования по умолчанию устанавливаются в диапазоне от 0 до 10000, чтобы представить их полностью обрезанными до полностью раскрытых.
НТН