Я хотел бы отобразить фотографию на экране активности Android с постепенным и непрерывным переходом от бледной монотонной сепии к окончательному полному цвету. Я знаю, как это сделать на Java Image/BufferedImage для графического объекта, но, к сожалению, я ничего не знаю о среде программирования Android. Может ли кто-нибудь помочь?
Как сделать затухание изображения на экране активности Android?
Ответы (4)
Привет, Хироши, ты можешь сделать это для постепенного появления:
ImageView myImageView= (ImageView)findViewById(R.id.myImageView);
Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
myImageView.startAnimation(myFadeInAnimation); //Set animation to your ImageView
и внутри вашей папки res\anim\ файл анимации fadein.xml
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="3000"/>
</set>
но для постепенного перехода от сепии к полному цвету необходимо использовать TransitionDrawable
android:repeatCount="infinite"
, хотя...
- person Bojan Radivojevic Bomber; 29.06.2012
Я хотел, чтобы изображение исчезало (а затем исчезало) после перехода от полной непрозрачности к 0. Вот как я это сделал:
Animation a = new AlphaAnimation(1.00f, 0.00f);
a.setDuration(1000);
a.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
public void onAnimationEnd(Animation animation) {
yourView.setVisibility(View.GONE);
}
});
yourView.startAnimation(a);
Одним из методов для этого было бы использование набора анимаций. Глянь сюда;
http://developer.android.com/guide/topics/resources/available-resources.html#animation
Некоторый пример кода, который я сделал (бесконечный цикл исчезает в этом примере);
В файле анимации .xml;
<alpha android:fromAlpha="1.0"
android:toAlpha="0.3"
android:duration="7000"
android:repeatMode="restart"
android:repeatCount="infinite"/>
В java-файле;
ImageView introanim = (ImageView) findViewById(R.id.introanim);
Animation StoryAnimation = AnimationUtils.loadAnimation(this, R.anim.intro_anim);
introanim.startAnimation(StoryAnimation);
Вы можете переходить от фона/изображения сепии к чему угодно...
Еще одно гораздо более простое решение - просто поместить заглушку метода onClick в ваш ImageView, который вы хотите исчезнуть, а затем внутри метода вы добавите это:
view.animate().alpha(0).setDuration(2000);
/* Alpha attribute translates to opacity.
A solid View means that the alpha attribute is set to 1 (which is the
default) and completely invisible is 0 */