• 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));
                    }
                }
            });
        }
    }
    
  • 相关阅读:
    为什么 ObjectiveC 很难
    PHP开发Windows桌面应用程序实例
    windows下借助InstantRails环境搭建redmine
    php,python,ruby,perl的优缺点?
    Ruby在windows上的eclipse开发环境搭建
    Python的web框架很多,比如Django,webpy等,但是哪一种综合实力最强呢?
    使用JRockit作为Eclipse的Java VM
    Fat Jar Eclipse PlugIn Tutorial
    ECLIPSE插件集合
    Java反编译利器Jad, Jode, Java Decompiler等及其IDE插件
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5280584.html
Copyright © 2020-2023  润新知