এখানে একটি পরিষ্কার সমাধান রয়েছে যা android.net.Uri
ক্লাসকে পুরোপুরিভাবে তার Builder
প্যাটার্নের মাধ্যমে উপস্থাপন করে , বারবার রচনা এবং ইউআরআই স্ট্রিংয়ের পচন এড়ায়, ইউআরআই সিনট্যাক্স সম্পর্কে হার্ড-কোডেড স্ট্রিং বা অ্যাডহক ধারণার উপর নির্ভর না করে fully
Resources resources = context.getResources();
Uri uri = new Uri.Builder()
.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
.authority(resources.getResourcePackageName(resourceId))
.appendPath(resources.getResourceTypeName(resourceId))
.appendPath(resources.getResourceEntryName(resourceId))
.build();
কোটলিনের সাথে সামান্যতম মার্জিত:
fun Context.resourceUri(resourceId: Int): Uri = with(resources) {
Uri.Builder()
.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
.authority(getResourcePackageName(resourceId))
.appendPath(getResourceTypeName(resourceId))
.appendPath(getResourceEntryName(resourceId))
.build()
}