Java 如何从Drawable接收链接?

Java 如何从Drawable接收链接?,java,android,android-layout,Java,Android,Android Layout,我有这样一个函数: fromColorResAndUrl(@ColorRes int colorRes, String imageUrl) 现在我这样称呼它: fromColorResAndUrl(R.color.blue, "http://www.example.com/wallpaper.jpg"); 您可以使用外部图像链接看到它 我想使用本地图像链接。因此,我将'wallpaper.jpg'保存在res/drawable中 现在我想知道如何将其放入函

我有这样一个函数:

 fromColorResAndUrl(@ColorRes int colorRes, String imageUrl)
现在我这样称呼它:

fromColorResAndUrl(R.color.blue,
                 "http://www.example.com/wallpaper.jpg");
您可以使用外部图像链接看到它

我想使用本地图像链接。因此,我将
'wallpaper.jpg'
保存在
res/drawable

现在我想知道如何将其放入函数中


我尝试
file:///android_asset/drawable/wallpaper.jpg
但没有成功

使用
R.drawable.wallpaper
,如上所示


此外,如果您导入抽绳设备,建议针对每种手机尺寸对其进行缩放。我建议使用,它非常快速且易于使用。

file:///android_asset/...
URL只能在
assets
文件夹中找到资源,因此如果使用
file:///android_asset/drawable/wallpaper.jpg
然后必须将
wallpaper.jpg
放入
资产/drawable/
文件夹中,这不是可提取项的默认位置

去掉URL字符串,这样您就只有文件名而没有扩展名

String fileName = "wallpaper"
然后获取int资源值:

int imgR = getResources().getIdentifier(fileName, "drawable", getPackageName());
然后使用:
getResources().getDrawable(imgR)
获取图像。 作为ImageView的示例:

try {

    yourImageView.setImageDrawable(getResources().getDrawable(imgR)
    } catch (NotFoundException e) {
        int defaultR = getResources().getIdentifier(yourfallbackimg, "drawable", getPackageName())
        yourImageView.setImageDrawable(getResources().getDrawable(defaultR))
    }
使用try-catch以防没有返回文件名,这样您将有一个默认映像,而不是崩溃

编辑


检查谢谢我尝试
String fileName=“wallpaper_51”;int imgR=getResources().getIdentifier(文件名为“drawable”,getPackageName());ImageView您的ImageView;String str=yourImageView.setImageDrawable(getResources().getDrawable(imgR))但是我得到了一个无效的错误为什么你要写字符串str=ImageView.setImageDrawable?我知道这是错误的。我想获取图像的URL作为字符串,以便在该函数中使用。我想知道如何将其更改为string Now url或url的文件名?你应该已经有了url,因为你是设置它的人。对于文件名,仅使用filename变量。查看我更新的帖子链接