android - 如何遍历大量具有相似名称的资源?

标签 android android-animation

我目前正在尝试启动一个线程,该线程从其资源中获取可绘制对象并在设定的时间后发布它。然后从资源中获取下一个可绘制对象,并从头到尾做同样的事情。

    final ImageView zImageView = (ImageView) findViewById(R.id.zzz_animation_view);
    new Thread(new Runnable() {
        public void run() {
            for(int i = 1; i<=510; i++)
            {
                final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.z_animation0001); // how do I increment this recourse to z_animation0002, 0003, ..., 0510 ?
                zImageView.postDelayed(new Runnable() {
                    public void run() {
                        zImageView.setImageBitmap(bitmap);
                    }
                },200);
            }

        }
    }).start();

首先。这是解决问题的正确方法吗?可绘制对象太大,我无法使用动画列表,因此我的目标是一次加载一个图像以确保我有足够的内存。其次,如何解决迭代资源的问题?

最佳答案

您可以使用 Resources.getIdentifier 通过名称获取资源 ID :

final int current = 5;
final String pattern = "z_animation%04d";
final String name = String.format(pattern, current);
final int id = getResources().getIdentifier(name, "drawable", getPackageName());
final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), id);

此外,here您可以使用完全符合您要求的代码示例找到我对同一问题的答案。

关于android - 如何遍历大量具有相似名称的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14441807/

相关文章:

java - Exoplayer 音频未在后台服务中播放

android - 为动画 ImageView 注册 onclick

android - 如何像在 Android 的 Google+ 应用程序中一样为 FloatingActionButton 设置动画?

android - 使用 alpha 动画更改 View 颜色

android - 检测 ValueAnimator 何时完成

Android:WebView滚动动画

android - Android Studio:尝试了解编译和实现之间的区别

android - 启动谷歌语音搜索(语音识别)后如何暂停我的应用程序的音频/音乐?

android - IllegalStateException:当我第二次尝试显示 AlertDialog 时

java - 如何以编程方式获取 Camera RAW 元数据信息 Android