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

Posted phlsheji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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));
                }
            }
        });
    }
}


以上是关于Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)的主要内容,如果未能解决你的问题,请参考以下文章

Android:安卓学习笔记之Bitmap的简单理解和使用

Android 基础 十二 Bitmap的加载和Cache

Android Bitmap 与 Drawable之间的区别和转换

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

Android入门——Bitmap和BitmapFactory

Android ,base64转bitmap