AssetManager读取assets下多张图片资源输出到ImageView动画

这里面有几个要点和环节需要注意:
1,AssetManager读取事先放置到assets目录下的原始图片资源文件,组装成Android的Bitmap数组。
文件结构如图:

2,把1中读取到的Bitmap数组每隔一个较小时间内(如25ms)不间断循环设置到ImageView里面,从而在视觉上形成一种动画效果。

代码:

package zhangphil.test;import android.content.res.AssetManager;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.widget.ImageView;import java.io.InputStream;import java.util.concurrent.TimeUnit;public class AnimationActivity extends AppCompatActivity {    private boolean mStartLoadingAnimation = false;    private ImageView mImageView;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.animation_activity);        mImageView = findViewById(R.id.image);        mStartLoadingAnimation = true;        loadingAnimation();    }    private void loadingAnimation() {        new Thread(new Runnable() {            @Override            public void run() {                Bitmap[] bitmaps = getBimaps();                if (bitmaps == null || bitmaps.length == 0) {                    return;                }                int i = 0;                while (mStartLoadingAnimation) {                    mImageView.setImageBitmap(bitmaps[i++ % bitmaps.length]);                    try {                        TimeUnit.MILLISECONDS.sleep(25);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        }).start();    }    private Bitmap[] getBimaps() {        final String parentPath = "loading";        Bitmap[] bitmaps = null;        AssetManager am = getAssets();        try {            String[] files = am.list(parentPath);            bitmaps = new Bitmap[files.length];            for (int i = 0; i < files.length; i++) {                InputStream is = am.open(parentPath + "/" + files[i]);                bitmaps[i] = BitmapFactory.decodeStream(is);                is.close();            }        } catch (Exception e) {            e.printStackTrace();        }        return bitmaps;    }}

 

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. android 文件管理器的源码实现
  6. Android内存监测工具DDMS->Heap,内存分析工具->MAT
  7. Android平台基于Pull方式对XML文件解析及写入
  8. Android(安卓)使用【AIDL】调用外部服务
  9. Android之传感器系统(Gsensor) .

随机推荐

  1. 启动qt_Qt编程实例:基于Android的BLE通信
  2. 【Android】debug 状态下其签名文件 debu
  3. Android控件抖动效果
  4. Android热修复框架AndFix核心代码分析并
  5. 【安卓】关于 Android(安卓)默认字体以及
  6. Andriod ADB Interface驱动安装失败Confi
  7. Android的消息机制
  8. 绿色守护简单使用教程
  9. Android(安卓)IPC(进程间通信)
  10. android 实现欢迎界面