Android BitmapFactory无法解码流。致命的空指针错误
我对解码流有问题。我正在尝试将文件夹/MyApp/图标中的图像放入imageView。我犯了一个致命的错误Android BitmapFactory无法解码流。致命的空指针错误,android,Android,我对解码流有问题。我正在尝试将文件夹/MyApp/图标中的图像放入imageView。我犯了一个致命的错误 05-11 22:21:22.319: E/BitmapFactory(7981): Unable to decode stream: java.io.FileNotFoundException: /MyWeather/icons/a04n.png: open failed: ENOENT (No such file or directory) 我试着设置了一个“icons/。”、“/i
05-11 22:21:22.319: E/BitmapFactory(7981): Unable to decode stream: java.io.FileNotFoundException: /MyWeather/icons/a04n.png: open failed: ENOENT (No such file or directory)
我试着设置了一个“icons/。”、“/icons/。”和许多其他选项,但任何人都不行
public class Notifications extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.notification);
ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
Bundle extras = getIntent().getExtras();
String ikona = extras.getString("icon");
Bitmap bm = BitmapFactory.decodeFile("MyWeather/icons/a"+ikona+".png");
imageView1.setImageBitmap(bm);
}
}
有人能告诉我,我如何从这个文件夹中获取这个图标并将其设置在我的imageView中吗?
谢谢
将文件夹放在project的根目录下并不意味着它会将文件夹放在Android设备的根目录下…
那么,在您的情况下,我建议您将文件保存在assets文件夹中,并使用AssetManager加载文件。
下面是一个例子:
将“图标”文件夹放入资产文件夹。
使用以下代码解码图像文件:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.notification);
ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
Bundle extras = getIntent().getExtras();
String ikona = extras.getString("icon");
AssetManager assetManager = getAssets();
Bitmap bm;
try {
InputStream is = assetManager.open("icons/a"+ikona+".png");
bm = BitmapFactory.decodeStream(is);
} catch (IOException e) {
e.printStackTrace();
// put your exception handling code here.
}
imageView1.setImageBitmap(bm);
}
/例如MyWeather/icons/a04n.png。你确定吗?您的日志显示该文件不存在…或者您对该文件有权限问题,您是否尝试过在adb shell中使用chmod o+x/MyWeather/icons/a04n.png?是否在SD卡中使用MyWeather?MyWeather是一个android项目,icons是该项目中的文件夹。亲爱的,我认为您无法读取这样的文件。像这样把你的图标放到
assest
文件夹中,非常感谢。这就是工作;)