Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)

这里写图片描写叙述

使用简单图片

这里写图片描写叙述

使用Drawable对象

这里写图片描写叙述

bitmap和BitmapDrawable对象

这里写图片描写叙述
这里写图片描写叙述
这里写图片描写叙述

package peng.liu.test;

import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ClipDrawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

import java.io.InputStream;
import java.util.Timer;
import java.util.TimerTask;


public class MainActivity extends Activity{
    String[] images;
    ImageView image;
    int currentImg;
    AssetManager asset;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        image = (ImageView) findViewById(R.id.imageBit);
        try{
            asset = getAssets();
            images = asset.list("");
        }catch (Exception e){
            e.printStackTrace();
        }
        findViewById(R.id.btnBit).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (currentImg >= images.length){
                    currentImg = 0;
                }
                while (!images[currentImg].endsWith(".png")&&!images[currentImg].endsWith(".jpg")&&!images[currentImg].endsWith(".gif")){
                    currentImg++;
                    if (currentImg >= images.length){
                        currentImg = 0;
                    }
                    InputStream assetFile = null;
                    try{
                        assetFile = asset.open(images[currentImg++]);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    BitmapDrawable drawable = (BitmapDrawable) image.getDrawable();
                    if (drawable != null && !drawable.getBitmap().isRecycled()){
                        drawable.getBitmap().recycle();
                    }
                    image.setImageBitmap(BitmapFactory.decodeStream(assetFile));
                }
            }
        });
    }
}
posted @ 2016-03-15 18:17  phlsheji  阅读(1863)  评论(0编辑  收藏  举报