解码流有问题。我试图将图像从文件夹/ 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 /.." ," / 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中? 谢谢。
答案 0 :(得分:2)
将您的文件夹放在项目的根目录中并不意味着它会将该文件夹放到Android设备的根目录中...
那么,在您的情况下,我建议您将文件保存在assets文件夹中,并使用AssetManager加载文件。
这是一个例子:
将“icons”文件夹放入资源文件夹。
使用以下代码解码图像文件:
@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);
}