Ответ 1
Вы можете попытаться сделать свою деятельность полупрозрачной... взгляните на полупрозрачную тему в sdk
@android:style/Theme.Translucent
Я хочу добавить анимацию fadeout для моего заставки, то есть при закрытии экрана заставки я хочу принести эффект анимации fadeout.
Вот коды, которые я пробовал.
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Но вышеприведенное может использоваться только из 2.0. Приложение Ny должно поддерживать от 1.5.
Итак, для моей основной деятельности была настроена следующая анимация.
getWindow().setWindowAnimations(android.R.style.Animation_Toast);
ИЛИ
getWindow().setWindowAnimations(R.style.Theme_FadeIn);
My Theme.FadeIn содержит
<style name="Theme.FadeIn">
<item name="android:windowNoTitle">true</item>
<item name="android:activityOpenEnterAnimation">@anim/fade_in</item>
</style>
Теперь я вижу эффект fadein, но я вижу черный экран.
Как получить эффект fadein или fadeout без черного экрана.
Вы можете попытаться сделать свою деятельность полупрозрачной... взгляните на полупрозрачную тему в sdk
@android:style/Theme.Translucent
SWDeveloper,
Хотя прошло уже год с тех пор, как я сам разработал Android-разработки, я помню, как я столкнулся с этой проблемой с моим собственным заставным экраном.
К сожалению, для выпусков до 2.0 я вполне уверен, что тип перехода, который вы хотите, невозможен между действиями. То есть, в версии 1.5/1.6 между действиями могут использоваться только встроенные анимации перехода.
С учетом сказанного, похоже, я вспоминаю, что я использовал анимацию перехода в рамках данной деятельности для создания такого эффекта, который я искал. Другими словами, в моей активности заставки затухают исходное представление только до пустого белого представления перед переходом к следующему действию. Затем следующее действие начнется с чистого белого представления, а затем исчезнет в фактическом виде активности.
Если это похоже на большую работу, вы также можете просто включить свой экран заставки в свою начальную деятельность и всегда представлять его сначала, а затем исчезать. Все в рамках одной и той же деятельности. Использование этого метода, вероятно, сэкономит вам время и работу, но потеряет часть модульности, которая будет разделять ваши экраны на отдельные действия.
Анимация между представлениями может быть достигнута (если я правильно помню) через виджет ViewFlipper. Андроидные документы для него можно найти здесь: http://developer.android.com/reference/android/widget/ViewFlipper.html
Если я могу получить базу кода приложения, которое я написал, я попытаюсь опубликовать пример позже.
Удачи!
Если вы используете отдельное действие для своего заставки, вы можете сделать вызов overridePendingTransition, который вы отметили, доступен только в Android 2+. Вы можете выбрать приложения, созданные для 2+, если переход и предыдущие версии просто выполняют переход по умолчанию:
try {
Method method = Activity.class.getMethod("overridePendingTransition", new Class[]{int.class, int.class});
method.invoke(youractivity, inanimation, outanimation);
} catch (Exception e) {
// Can't change animation, so do nothing
}
Лучше всего, чтобы ваш заставку являлся частью вашей основной деятельности (см. этот пример). Когда заставка является частью вашего основного действия, вы можете просто назначить анимацию макету заставки.