Burada, URI dizgisinin sabit kodlu dizelere veya geçici fikirlere dayanmadan, URI dizgisinin tekrarlanan bileşimini ve ayrışmasını önleyerek android.net.Uri
, Builder
kalıbı aracılığıyla sınıfı tamamen kullanan temiz bir çözüm var .
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();
Kotlin ile minimal daha zarif:
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()
}