如何获取我上传到资产或可在Android中绘制的图像的路径?

| 我是android的新手,对此了解不多。我已将图像导入到我的项目中,当我尝试使用文件检查它时,该文件是否存在。 这是我使用的代码。
 existingFileName=\"res/drawable-ldpi/login.png\";  
 File f= new File(existingFileName);  
      //  Log.d(\"Image path\",);  
        if(f.exists())  
        {  
            Log.d(\"EXISTS\", \"====File Exists===\");  
        }
仍然显示我不存在图像。 谢谢你的帮助 阿比
已邀请:
如果将图像存储在\“ res / drawable \”文件夹中,则可以执行以下操作:
Drawable drawable = getResources().getDrawable(R.drawable.name)
请参阅http://developer.android.com/reference/android/content/res/Resources.html#getDrawable 如果您将图片存储在资产文件夹中,则需要使用
getAssets()
(http://developer.android.com/reference/android/content/Context.html#getAssets()) 您可以执行以下操作:
InputStream is = getAssets().open(imageName);
BufferedInputStream buf = new BufferedInputStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(buf);
请记住,这两种情况都需要ѭ4have(即
Activity
如果要将图像放在可绘制的文件夹中,我认为您不能像这样访问它们。尝试这个
Drawable image= getResources().getDrawable(R.drawable.<id>); 
id将是您的文件名。
在读取资产文件之前,存在“ 7”个资产文件。
AssetManager takes care of it
。如果文件丢失,它将引发异常。您的编码实践应该总是将那部分代码包含在try catch和split逻辑中。不需要额外的代码。如果您尝试打开一个不存在的文件,则会出现异常。 不过,如果您仍然想做手动工作,请尝试以下代码。
AssetManager mg = getResources().getAssets();

try {

  //do all considering file exists 
     mg.open(pathInAssets);
} catch (IOException ex) {
  //do all in case file is missing
}
如果您的文件位于assets / folder / file.ext中,那么“ 10”将是“ 11” 检查androids资产文件夹中是否存在文件? 如何查看Android Asset资源?
通常,如果您使用res / drawable,则您的资源标识符会编译到R.java文件中。因此,如果从此处使用标识符,则可以确保文件位于此处,否则无法编译项目。 但是,如果您以后想交换R.java并确实需要在res / drawable中列出资源,则可以使用java Reflection来完成,检查R类,如下所示:
    Class<?> c=R.drawable.class;
    Field[] fs=c.getFields();
    for(Field f: fs)
        Log.v(\"test\", f.getName());
然后,您将获得资源列表,没有文件扩展名。然后用
int id=f.getInt(null);
读取每个资源的资源标识符(整数)。
在Eclipse中使用DDMS透视图在运行您的应用程序的模拟器上浏览图像。
如果遇到此错误,请执行以下操作:\“无法从类型
ContextWrapper
non-static
方法
getResources()
进行
static
引用” 试试
Drawable image=Classname.this.getResources().getDrawable(R.drawable.<id>);
此处的“ 19”表示ClassContext / Application Context。

要回复问题请先登录注册