programacion - obtener la ruta de una imagen android studio
Android obtener la ruta de la imagen de drawable como cadena (6)
¿Hay alguna forma de obtener la ruta de la imagen desde una carpeta dibujable en Android como String? Necesito esto porque implemento mi propio flujo de vista donde muestro las imágenes usando su ruta en la tarjeta SD, pero quiero mostrar una imagen predeterminada cuando no hay ninguna imagen para mostrar.
¿Alguna idea de cómo hacer eso?
Basado en algunas de las respuestas anteriores, lo improvisé un poco.
Crea este método y llámalo pasando tu recurso.
Método reutilizable
public String getURLForResource (int resourceId) {
return Uri.parse("android.resource://"+R.class.getPackage().getName()+"/" +resourceId).toString();
}
Llamada de muestra
getURLForResource(R.drawable.personIcon)
ejemplo completo de carga de imagen
String imageUrl = getURLForResource(R.drawable.personIcon);
// Load image
Glide.with(patientProfileImageView.getContext())
.load(imageUrl)
.into(patientProfileImageView);
puede mover la función getURLForResource a un archivo Util y hacerla estática para que pueda reutilizarse
Creo que no se puede obtener como String
pero se puede obtener como int
por obtener el id
recurso:
int resId = this.getResources().getIdentifier("imageNameHere", "drawable", this.getPackageName());
De esta manera, puedes llegar a una imagen en particular en tu carpeta drawable
. Obtenga los recursos y luego especifique la imagen a la que desea acceder:
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.myimage);
Para más información, vea Recursos dibujables .
Primero verifique si el archivo existe en la tarjeta SD. Si el archivo no existe en la tarjeta SD, puede configurar la imagen utilizando el método setImageResource () y pasando la imagen predeterminada de la carpeta dibujable
Código de muestra
File imageFile = new File(absolutepathOfImage);//absolutepathOfImage is absolute path of image including its name
if(!imageFile.exists()){//file doesnot exist in SDCard
imageview.setImageResource(R.drawable.defaultImage);//set default image from drawable folder
}
Si planea obtener la imagen de su ruta, es mejor usar Activos en lugar de tratar de averiguar la ruta de la carpeta que se puede dibujar.
InputStream stream = getAssets().open("image.png");
Drawable d = Drawable.createFromStream(stream, null);
Todas estas son formas:
String imageUri = "drawable://" + R.drawable.image;
Otras formas que he probado
Uri path = Uri.parse("android.resource://com.segf4ult.test/" + R.drawable.icon);
Uri otherPath = Uri.parse("android.resource://com.segf4ult.test/drawable/icon");
String path = path.toString();
String path = otherPath .toString();