package airmovegesture.com.loadimagefromassert; import android.content.res.AssetManager; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.renderscript.ScriptGroup; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import java.io.IOException; import java.io.InputStream; public class MainActivity extends AppCompatActivity { String[] images=null; AssetManager assets=null; int currentImg=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageView image=(ImageView)findViewById(R.id.image); try { assets = getAssets(); images = assets.list(""); System.out.println("length: "+images.length); }catch (Exception e){ e.printStackTrace(); } final Button bn = (Button) findViewById(R.id.bt); bn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //找下一个图片文件 while(!images[currentImg].endsWith(".png")&& !images[currentImg].endsWith(".jpg")&& !images[currentImg].endsWith(".gif")) { currentImg++; currentImg%=images.length; } InputStream assetfile = null; try{ //打开指定资源的输入流 assetfile = assets.open(images[currentImg++]); currentImg%=images.length; }catch(IOException e){ e.printStackTrace(); } BitmapDrawable bitmapDrawable = (BitmapDrawable) image.getDrawable(); //如果图片还没回收,先强制回收该图片 if(bitmapDrawable != null && !bitmapDrawable.getBitmap().isRecycled()){ bitmapDrawable.getBitmap().recycle(); } //改变显示的图片 image.setImageBitmap(BitmapFactory.decodeStream(assetfile)); } }); } }
从assert目录下加载图片并显示在界面上
最新推荐文章于 2024-04-09 06:03:56 发布