Подтвердить что ты не робот

Android - Мигающее изображение с использованием анимации Alpha fade

Я несколько дней боролся с этим, наконец, просто решил спросить. Это так просто, я должен упустить что-то очень основное.

У меня есть страница макета XML с определенным изображением. У меня есть две страницы XML XML, одна для изменения альфа от 0 до 1, а другая от 1 до 0, чтобы создать "мигающий" эффект. Таким образом, alphaAnimation определяется в XML, мне просто нужно это назвать.

Изображение всплывает, но нет эффекта циклического мигания.

public class blinker extends Activity {

   //create name of animation
Animation myFadeInAnimation;
Animation myFadeOutAnimation;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.scanning_view);

 //grab the imageview and load the animations
    ImageView myImageView = (ImageView) findViewById(R.id.blinkingView01); 
    Animation myFadeInAnimation = AnimationUtils.loadAnimation(null, R.anim.fade_in);
    Animation myFadeOutAnimation = AnimationUtils.loadAnimation(null, R.anim.fade_out);

//fade it in, and fade it out. 
    myImageView.startAnimation(myFadeInAnimation);
    myImageView.startAnimation(myFadeOutAnimation);
     }
}   

Два макета анимации XML в ресурсе Anim:

<?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="50" android:repeatCount="infinite"/> 
 </set> 

И другое:

 <?xml version="1.0" encoding="UTF-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" 
    android:interpolator="@android:anim/accelerate_interpolator"  
    android:duration="1000" android:repeatCount="infinite"/> 
</set>
4b9b3361

Ответ 1

Почему бы не использовать android:repeatMode="reverse"

Ответ 2

Лучший способ анимации анимации:

ImageView myImageView = (ImageView) findViewById(R.id.imageView2); 
Animation myFadeInAnimation = AnimationUtils.loadAnimation(Splash.this, R.anim.tween);
myImageView.startAnimation(myFadeInAnimation);

в вашем res/anim/create tween.xml tween 1s начните с непрозрачности 0 до 1 и инвертируйте бесконечность...

<?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:duration="1000" 
    android:repeatMode="reverse"
    android:repeatCount="infinite" />
</set>

Ответ 3

Вы можете использовать приведенную ниже альфа-анимацию для установки мигающих эффектов на представления в андроиде.

blinkanimation= new AlphaAnimation(1, 0); // Change alpha from fully visible to invisible
blinkanimation.setDuration(300); // duration
blinkanimation.setInterpolator(new LinearInterpolator()); // do not alter animation rate
blinkanimation.setRepeatCount(3); // Repeat animation infinitely
blinkanimation.setRepeatMode(Animation.REVERSE);

После этого добавьте анимацию в свой вид, например,

view.setAnimation(blinkanimation); 

или

view.startAnimation(blinkanimation);