问题描述
- 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的路径,加上这个路径才行