Edited at

DrawableのResource IDをURL(String)に変換する

More than 3 years have passed since last update.

DrawableはそのままImageViewにセットすることができますが、Picassoを使ってネットワーク上の画像のURLとDrawableを同じようにStringとして扱いたいような場合、ResourceIDをURLのStringに変換できると便利です。

次のコードで実現できます。

public static String convertUrlFromDrawableResId(Context context, int drawableResId) {

StringBuilder sb = new StringBuilder();
sb.append(ContentResolver.SCHEME_ANDROID_RESOURCE);
sb.append("://");
sb.append(context.getResources().getResourcePackageName(drawableResId));
sb.append("/");
sb.append(context.getResources().getResourceTypeName(drawableResId));
sb.append("/");
sb.append(context.getResources().getResourceEntryName(drawableResId));
return sb.toString();
// Uriに変換したい時は Uri.parse(sb.toString())
}