android中关于assetManager.list("")的问题。困扰我一下午了

问题描述

android中关于assetManager.list("")的问题。困扰我一下午了

我通过这段代码images = assetManager.list("img"),将assets目录下的img文件夹中的图片路径都保存在String[] iamges数组中
在我取出这个数组中元素的时候出现了这个异常java.io.FileNotFoundException: p1.jpg, 它说未找到这长图片,但是我遍历这个数组
都能将里面的元素全部遍历出来,跪求大神解释一下这个是为什么

解决方案

你没有获得assets的路径,加上这个路径才行
http://blog.csdn.net/liaowenfeng/article/details/17717289

解决方案二:

这是我的代码
public class MainActivity extends Activity {

private Button nextBtn;
private AssetManager assetManager = null;
private String[] images = null;
private int currentImage = 0;
private ImageView image;
private Bitmap bitmap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();

// InputStream is = null;
// try {
// is = assetManager.open(images[currentImage]);
// } catch (IOException e) {
// e.printStackTrace();
// }
// bitmap = BitmapFactory.decodeStream(is);
// image.setImageBitmap(bitmap);

    nextBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            InputStream is = null;
            if(currentImage >= images.length){
                currentImage = 0;
            }else {
                    currentImage++;
                    if(currentImage >= images.length){
                        currentImage = 0;
                    }
                }
                try {
                    is = assetManager.open(images[currentImage]);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                bitmap = BitmapFactory.decodeStream(is);
                image.setImageBitmap(bitmap);
            }

    });

}

private void initView() {
    nextBtn = (Button) findViewById(R.id.next_btn);
    image = (ImageView) findViewById(R.id.iamge);
    assetManager = getAssets();
    try {
        images = assetManager.list("img");
        System.out.println("长度:"+images.length);
        for(int i = 0;i<images.length;i++){
            System.out.println(images[i]);
        }
        InputStream is = null;
        try {
            is = assetManager.open(images[0]);
        } catch (IOException e) {
            e.printStackTrace();
        }
        bitmap = BitmapFactory.decodeStream(is);
        image.setImageBitmap(bitmap);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}
哪位大神帮我看看哪里出问题了
首先images集合里是有元素的 可以遍历出来,但是取的时候就取不出来为空

解决方案三:

这是我的代码
public class MainActivity extends Activity {

private Button nextBtn;
private AssetManager assetManager = null;
private String[] images = null;
private int currentImage = 0;
private ImageView image;
private Bitmap bitmap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();

// InputStream is = null;
// try {
// is = assetManager.open(images[currentImage]);
// } catch (IOException e) {
// e.printStackTrace();
// }
// bitmap = BitmapFactory.decodeStream(is);
// image.setImageBitmap(bitmap);

    nextBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            InputStream is = null;
            if(currentImage >= images.length){
                currentImage = 0;
            }else {
                    currentImage++;
                    if(currentImage >= images.length){
                        currentImage = 0;
                    }
                }
                try {
                    is = assetManager.open(images[currentImage]);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                bitmap = BitmapFactory.decodeStream(is);
                image.setImageBitmap(bitmap);
            }

    });

}

private void initView() {
    nextBtn = (Button) findViewById(R.id.next_btn);
    image = (ImageView) findViewById(R.id.iamge);
    assetManager = getAssets();
    try {
        images = assetManager.list("img");
        System.out.println("长度:"+images.length);
        for(int i = 0;i<images.length;i++){
            System.out.println(images[i]);
        }
        InputStream is = null;
        try {
            is = assetManager.open(images[0]);
        } catch (IOException e) {
            e.printStackTrace();
        }
        bitmap = BitmapFactory.decodeStream(is);
        image.setImageBitmap(bitmap);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}
哪位大神帮我看看哪里出问题了
首先images集合里是有元素的 可以遍历出来,但是取的时候就取不出来为空

解决方案四:

没有获得assets的路径,加上这个路径才行

时间: 2024-10-27 23:18:01

android中关于assetManager.list(&amp;quot;&amp;quot;)的问题。困扰我一下午了的相关文章

android中内部类提示类后面&amp;amp;quot;(&amp;amp;quot;&amp;amp;quot;]&amp;amp;quot;出现错误,格式错误?

问题描述 android中内部类提示类后面"(""]"出现错误,格式错误? 在一个类private void LoadOpenDialog(final File file) {中,放置了类 boolean checkEndsWithInStringArray (String checkItsEnd, String[] fileEndings){ for(String aEnd:fileEndings){ if(checkItsEnd.endsWith(aEnd))

图片-&amp;amp;quot;急求&amp;amp;quot; android中 ImageButton 通过点击事件,实现时间menu列表

问题描述 "急求" android中 ImageButton 通过点击事件,实现时间menu列表 点击ImgButton 事件,在当前activity 弹出时间列表 .要兼容低版本版本的Demo 解决方案 spinner 控件 或者 popwindow

android中通过pull解释器解析xml

         android中已经集成了pull解释器,所以不用添加jar文件,如果在javaee中使用pull需要手动添加pull的jar文件.android系统本身就是通过pull解释器来处理xml文件.所以说明pull还是有一定的优越性.         1.main.xml         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"          xmlns:to

android中创建文件夹。。。。。

问题描述 android中创建文件夹..... #android中不能创建文件夹,哪里都不能! 调试返回结果底下三个全是false void createFile(File onClickFile, String fileName) { File f = new File(onClickFile.getAbsolutePath(), fileName); if (!f.exists()) { try { if (f.mkdirs()) { Toast.makeText(listActivity,

Android中asset和raw的区别详解_Android

*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点: 1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename:assets文件夹下的文件不会被映射到 R.java中,访问的时候需要AssetManager类. 2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹 *读取文件资源

Android中利用动态加载实现手机淘宝的节日特效_Android

相信去年圣诞节打开过手机淘宝的童鞋都会对当时的特效记忆犹新吧:全屏飘雪,旁边还有个小雪人来控制八音盒背景音乐的播放,让人有种身临其境的感觉,甚至忍不住想狠狠购物了呢(误),大概就是下面这个样子滴: 嗯,确实很炫,那么我们一步步去分析是如何实现的: 一.实现下雪的 View 首先,最上面一层的全屏雪花极有可能是一个顶层的View,而这个View是通过动态加载去控制显示的(不更新淘宝也能看到这个效果).那么我们先得实现雪花效果的 View,人生苦短,拿来就用.打开 gank.io,搜索"雪花&quo

Android中实现根据资源名获取资源ID_Android

接触过Android开发的同学们都知道在Android中访问程序资源基本都是通过资源ID来访问.这样开发起来很简单,并且可以不去考虑各种分辨率,语言等不同资源显式指定. 痛点 但是,有时候也会有一些问题,比如我们根据服务器端的值取图片,但是服务器端绝对不会返回给我们的是资源id,最多是一种和文件名相关联的值,操作资源少的时候,可以维护一个容器进行值与资源ID的映射,但是多的话,就需要另想办法了. 便捷的方法 在这种情况下,使用文件名来得到资源ID显得事半功倍. 通过调用Resources的get

Android中利用动态加载实现手机淘宝的节日特效

相信去年圣诞节打开过手机淘宝的童鞋都会对当时的特效记忆犹新吧:全屏飘雪,旁边还有个小雪人来控制八音盒背景音乐的播放,让人有种身临其境的感觉,甚至忍不住想狠狠购物了呢(误),大概就是下面这个样子滴: 嗯,确实很炫,那么我们一步步去分析是如何实现的: 一.实现下雪的 View 首先,最上面一层的全屏雪花极有可能是一个顶层的View,而这个View是通过动态加载去控制显示的(不更新淘宝也能看到这个效果).那么我们先得实现雪花效果的 View,人生苦短,拿来就用.打开 gank.io,搜索"雪花&quo

Android中实现根据资源名获取资源ID

接触过Android开发的同学们都知道在Android中访问程序资源基本都是通过资源ID来访问.这样开发起来很简单,并且可以不去考虑各种分辨率,语言等不同资源显式指定. 痛点 但是,有时候也会有一些问题,比如我们根据服务器端的值取图片,但是服务器端绝对不会返回给我们的是资源id,最多是一种和文件名相关联的值,操作资源少的时候,可以维护一个容器进行值与资源ID的映射,但是多的话,就需要另想办法了. 便捷的方法 在这种情况下,使用文件名来得到资源ID显得事半功倍. 通过调用Resources的get