java - 我想在 android 中使用闪烁动画更改图像,并且图像是使用 Glide 直接从服务器加载的。或任何其他选择来做到这一点?

标签 java android android-animation

这是我想在动画闪烁时更改图像的地方。我无法在其中设置多个图像,我是 Android 开发新手。

enter image description here

public class MainActivity extends AppCompatActivity {

    RelativeLayout suggestion;
    CircleImageView suggestionImage;
    AnimationDrawable animation;
    BitmapDrawable frame;

    String[] imageUrl = new String[]{"https://i.picsum.photos/id/663/200/200.jpg", "https://i.picsum.photos/id/1026/200/200.jpg", "https://i.picsum.photos/id/1037/200/200.jpg"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        suggestion = (RelativeLayout) findViewById(R.id.suggestionContainer);
        suggestionImage = (CircleImageView) findViewById(R.id.suggestionImage);

        final Animation moveOut = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.move_out);
        final Animation blink = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink);
        moveOut.setFillAfter(true);

        final Handler slide = new Handler();
        slide.postDelayed(new Runnable() {
            @Override
            public void run() {

                suggestion.startAnimation(moveOut);
            }
        }, 2100);

        suggestion.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(),"touched", Toast.LENGTH_SHORT).show();
            }
        });

            Glide.with(this)
                    .asBitmap()
                    .load(imageUrl[1])
                    .into(new CustomTarget<Bitmap>() {
                        @Override
                        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {

                            frame = new BitmapDrawable(resource);

                            animation.addFrame(frame, 1000);
                        }
                        @Override
                        public void onLoadCleared(@Nullable Drawable placeholder) {
                        }
                    });


        animation = new AnimationDrawable();

        animation.setOneShot(true);

        suggestionImage.setBackgroundDrawable(animation);
        suggestionImage.startAnimation(blink);
        animation.start();
    }

}

最佳答案

检查这是否有帮助。

image = (ImageView) findViewById(R.id.image);
    Animation animation = new AlphaAnimation((float) 0.5, 0); // Change alpha from fully visible to invisible
    animation.setDuration(500); // duration - half a second
    animation.setInterpolator(new LinearInterpolator()); // do not alter
                                                         // animation
                                                         // rate
    animation.setRepeatCount(Animation.INFINITE); // Repeat animation
                                                  // infinitely
    animation.setRepeatMode(Animation.REVERSE); // Reverse animation at the
                                                // end so the button will
                                                // fade back in
    image.startAnimation(animation);

关于java - 我想在 android 中使用闪烁动画更改图像,并且图像是使用 Glide 直接从服务器加载的。或任何其他选择来做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60726348/

相关文章:

java - 固定方向时获取屏幕方向

java - 如何取消注册按钮点击?

android - 动画 ImageView 可绘制颜色变化

android - 为什么退出动画在通过点击工具栏/应用栏左上角的后退箭头退出 Activity 时不起作用?

java - 获取字符串数组中每个单词的第一个字符及其频率

java - 如果 Set 包含具有某些字符串值的对象,如何检查 java?

java - 无法将按钮添加到 Android ActionBar API 21

android - 如何删除android中的自定义 ListView 项?

android - android 启动时,启动 Logo 后光标闪烁文本 "A N D R O I D _"

java - 此错误消息是什么意思? - sqlite3_exec - 无法设置同步模式 = 1(正常)