Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: Cómo acceder a las imágenes de los elementos / carpetas dibujables

La aplicación en la que estoy trabajando actualmente tiene cientos de imágenes. Por el momento las guardo en la carpeta 'Drawable'. Estaba pensando en mover todos ellos a la carpeta de activos.

Mi pregunta es: ¿Hay alguna diferencia en el rendimiento cuando se utilizan ambos enfoques?

  • Cargar archivos de más de 1M de la carpeta de activos
  • Android: Cómo hacer referencia a imágenes de activos desde una página HTML remotamente cargada en webview
  • Android WebView Javascript de los activos
  • Android - acceso a los activos de la aplicación de prueba
  • ¿Es posible cargar un drawable de la carpeta assets?
  • Android: archivo de acceso desde la pantalla de activos \ PDF
  • Cómo utilizar setOutlineProvider en lugar de setOutline en Lollipop
  • GetLastKnownLocation () Android, cuando se actualiza la última ubicación conocida?
  • Videoview de pantalla completa sin alargar el video
  • Android dialogFragment "a veces" no muestra la vista web
  • ¿Cómo agregar las burbujas a textview android?
  • ¿Cómo obtener el último registro de Sqlite?
  • 4 Solutions collect form web for “Android: Cómo acceder a las imágenes de los elementos / carpetas dibujables”

    No creo que haya poca diferencia en el rendimiento de usar estas dos carpetas , creo que usando la carpeta dibujable se pueden obtener fácilmente imágenes (Todos se indexarán en el archivo R, lo que hace que sea mucho más rápido (y mucho más fácil!) Cargarlos.), Y si desea utilizarlo desde el activo, entonces usted tiene que utilizar AssetManager continuación, utilizando AssetFileDescriptor tiene que obtener esas imágenes.

    • Assets también se pueden organizar en una jerarquía de carpetas, que no es compatible con los recursos. Es una forma diferente de administrar los datos. Aunque los recursos cubren la mayoría de los casos, los activos tienen su uso ocasional.

    • En el directorio res/drawable , a cada archivo se le da un ID precompuesto que se puede acceder fácilmente a través de R.id. [res id]. Esto es útil para acceder rápida y fácilmente a imágenes, sonidos, iconos …

    Por lo que sé, no debería haber una gran diferencia, pero yo preferiría ir con Drawable.

    Drawable le da, al lado de indexación, la opción de luchar con la densidad de pantalla de fragmentación y los activos no deben depender de la densidad. Tener imágenes grandes en pantallas más pequeñas y / o teléfonos con especificaciones más bajas (RAM, CPU) puede causar problemas reales e influenciar la capacidad de uso y la capacidad de respuesta de la aplicación.

    Creo que la principal diferencia entre estos dos es que la carpeta Drawable se indexa y se puede obtener el uso de la carga de recursos Android android … Así que creo que no hay diferencia de rendimiento entre estas carpetas de recursos.

    En realidad, también conocí los problemas. Quiero que la imagen de mi App ImageView se cargue desde assets / en lugar de res / drawables, de modo que pueda actualizar mi APP desde Internet dinámicamente.

    De mi prueba / sensación el funcionamiento es probable ser muy diferente si usted no presta la atención.

      //v.setImageBitmap(ImageUtil.getBitmapFromAsset(this, "data/dog/dog_0001.png", 60, 60)); //v.setImageDrawable(ImageUtil.getDrawableFromAsset(this, "data/dog/dog_0001.png")); v.setImageResource(R.drawable.dog_0001); 

    Mi aplicación lo hará por encima de la actividad onCreate. Parece probado que setImageResource es el más rápido.

    La razón de mi punto es que la decodificación de activos tomará tiempo que bloqueará el hilo de la interfaz de usuario, mientras que el ID del recurso es más rápido que la decodificación. Vi el código en setImageResource que parece también cargar la imagen. No estoy seguro de por qué mi decodificación es más lento que setImageResource. Pero siento que setImageResource es el más rápido. Estoy tratando de que la decodificación asíncamente decodificar y, a continuación, establecer bitmap.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.