res一般存放的是可编译的资源文件(raw除外,raw资源文件不会被编译)。
系统为我们提供了一个AssetManager工具类来帮助我们使用assets目录下的原始资源文件。
3、怎么在Android studio 工程中向assets文件夹下存放资源
然后点击finish即可自动创建出asstes空文件夹。
然后可以在继续在assets文件夹下创建新的目录,存放资源文件。
注意:如果误将assets空文件夹创建到了res目录下,assets空文件夹会显示不出来。
这时,即使去工程所在的路径下直接将文件复制到assets文件夹下,代码处理正确,也读取不到assets目录下的文件。
4、读取assets目录下的资源文件的例子。
layout文件就只包含了一个ImageView 和一个Button,比较简单在这就不呈现出来了,
package com.outdoors.jinghuang.demo; import android.app.Activity; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; 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 AssetsDemo extends Activity implements View.OnClickListener { private ImageView showPictureIv; private Button nextBt; private String[] pictures; private int currentPicture = 0; private AssetManager assets; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.assets_demo); loadAssetsData(); initView(); } private void initView() { showPictureIv = (ImageView) findViewById(R.id.show_picture_iv); //设置默认图片 showPictureIv.setImageResource(R.drawable.ic_launcher); nextBt = (Button) findViewById(R.id.next_bt); nextBt.setOnClickListener(this); } private void loadAssetsData() { //获取AssetManager assets = getResources().getAssets(); try { //获取assets目录下的所有文件及目录名 pictures = assets.list("picture"); } catch (IOException e) { e.printStackTrace(); } } @Override public void onClick(View view) { if (view.getId() == R.id.next_bt) { //防止越界 if (currentPicture >= pictures.length) { currentPicture = 0; } InputStream inputStream = null; try { inputStream = assets.open("picture/" + pictures[currentPicture]); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); showPictureIv.setImageBitmap(bitmap); currentPicture++; } catch (IOException e) { e.printStackTrace(); } finally { if (inputStream != null) { try { inputStream.close(); inputStream = null; } catch (IOException e) { e.printStackTrace(); } } } } } }