Desde Android 4.3 (Jelly Bean) ahora podemos hacer uso de las res/mipmap
carpetas para almacenar imágenes "mipmap".
Por ejemplo, Chrome para Android almacena sus iconos en estas carpetas en lugar de en las res/drawable
carpetas más normales .
¿En qué se diferencian estas imágenes de mapa mip de las otras imágenes familiares que se pueden dibujar?
Veo que en mi manifiesto, usamos el @mipmap/
calificador, en lugar de @drawable/
, lo que tiene sentido dado el nombre de la carpeta de recursos:
<activity
android:name=".MipmapDemp"
android:icon="@mipmap/ic_launcher" />
El documento de las API de Android 4.3 tiene lo siguiente que decir:
Usar un mapa mip como fuente para su mapa de bits o dibujable es una forma simple de proporcionar una imagen de calidad y varias escalas de imagen, lo que puede ser particularmente útil si espera que su imagen se escale durante una animación.
Android 4.2 (API nivel 17) agregó soporte para mipmaps en la clase Bitmap: Android intercambia las imágenes mip en su mapa de bits cuando ha proporcionado una fuente de mipmap y ha habilitado setHasMipMap (). Ahora, en Android 4.3, también puede habilitar mipmaps para un objeto BitmapDrawable, proporcionando un activo de mipmap y configurando el atributo android: mipMap en un archivo de recursos de mapa de bits o llamando a hasMipMap ().
No veo nada allí que me ayude a comprender.
Los recursos de mapa de bits XML tienen una android:mipMap
propiedad:
Booleano. Habilita o deshabilita la sugerencia de mapa mip. Consulte setHasMipMap () para obtener más información. El valor predeterminado es falso.
Esto no se aplica a los íconos del lanzador hasta donde puedo ver.
La pregunta se planteó en Grupos de Google (¿ El propósito del nombre del recurso "mipmap"? ), A lo que Romain Guy respondió:
Es útil proporcionar una imagen con una resolución mayor que normalmente se calcularía (por ejemplo, en un dispositivo mdpi, es posible que el Launcher desee que el ícono hdpi más grande muestre atajos de aplicaciones grandes).
Siento que esto casi tiene sentido, pero no del todo.
Todavía estoy inclinado a seguir el seguimiento de Randy Sugianto:
¿Cuáles son las ventajas de esto? ¿Hay alguna guía sobre cómo usar mipmaps, probablemente para obtener mejores iconos de iniciador?
Por supuesto, Wikipedia tiene una página para "Mipmap" , que se refiere a una técnica más antigua inventada en 1983, que no puedo relacionar del todo con la implementación actual de Android.
¿Deberíamos almacenar todos los íconos deres/mipmap
nuestras aplicaciones en carpetas en estos días, y cuáles son las pautas para estas imágenes de mapas MIP?
Actualización n. ° 1
Aquí hay una publicación de blog que intenta explicarlo un poco.
Pero la imagen utilizada en esa publicación del blog muestra lo que parece un archivo con muchos logotipos. Esto no es lo que veo en la carpeta mipmap de Chrome.
La mipmap-hdpi
carpeta de Chrome contiene tres imágenes. Uno es el logotipo de Chrome, por sí solo.
Curiosamente, es 72x72, no 48x48, lo que esperaría ver.
Quizás eso es todo lo que hay en esto: ¿solo necesitamos mantener iconos más grandes en las carpetas de mapas mip?
Actualización n. ° 2
La publicación del Blog de desarrolladores de Android del 23/10/2014 vuelve a confirmar la idea de utilizar las mipmap
carpetas para los iconos de las aplicaciones:
Cuando se habla de la densidad de pantalla del Nexus 6, el autor escribe:
Es una buena práctica colocar los íconos de su aplicación en carpetas mipmap (no en carpetas dibujables) porque se usan con resoluciones diferentes a la densidad actual del dispositivo. Por ejemplo, se puede usar un ícono de aplicación xxxhdpi en el lanzador para un dispositivo xxhdpi.
Actualización n. ° 3
Tenga en cuenta que Android Studio crea los ic_launcher.png
iconos en las mipmap...
carpetas en lugar de las drawable...
carpetas en las que Eclipse utilizó para crearlos.
Hay dos usos distintos de mipmaps:
Para iconos de iniciador al crear APK específicos de densidad. Algunos desarrolladores crean APK separados para cada densidad, para mantener el tamaño del APK bajo. Sin embargo, algunos lanzadores (enviados con algunos dispositivos o disponibles en Play Store) usan tamaños de íconos más grandes que el estándar de 48 dp. Los lanzadores usan getDrawableForDensity y reducen la escala si es necesario, en lugar de aumentar, por lo que los íconos son de alta calidad. Por ejemplo, en una tableta hdpi, el iniciador puede cargar el icono xhdpi. Al colocar el icono del iniciador en el directorio mipmap-xhdpi, no se eliminará de la forma en que lo es un directorio drawable-xhdpi cuando se crea un APK para dispositivos hdpi. Si está creando un único APK para todos los dispositivos, esto realmente no importa, ya que el lanzador puede acceder a los recursos dibujables para la densidad deseada.
La API de mipmap real de 4.3. No lo he usado y no estoy familiarizado con él. Los lanzadores de proyectos de código abierto de Android no lo usan y no tengo conocimiento de ningún otro lanzador que lo use.
Parece que Google ha actualizado sus documentos desde todas estas respuestas, así que espero que esto ayude a alguien más en el futuro :) Me encontré con esta pregunta mientras creaba un nuevo (nuevo) proyecto.
TL; DR: los elementos de diseño se pueden eliminar como parte de la optimización de recursos específicos de dp. Mipmaps no se eliminará.
Diferentes aplicaciones de inicio de pantalla de inicio en diferentes dispositivos muestran iconos de inicio de aplicaciones en varias resoluciones. Cuando las técnicas de optimización de recursos de la aplicación eliminan recursos para las densidades de pantalla no utilizadas, los íconos del iniciador pueden terminar pareciendo borrosos porque la aplicación del iniciador tiene que escalar un ícono de menor resolución para su visualización. Para evitar estos problemas de visualización, las aplicaciones deben usar las
mipmap/
carpetas de recursos para los iconos de inicio. El sistema Android conserva estos recursos independientemente de la reducción de densidad y garantiza que las aplicaciones de inicio puedan elegir los iconos con la mejor resolución para mostrarlos.
(de http://developer.android.com/tools/projects/index.html#mipmap )
¿En qué se diferencian estas imágenes de mapa mip de las otras imágenes familiares que se pueden dibujar?
Aquí está mi granito de arena para tratar de explicar la diferencia. Hay dos casos con los que se enfrenta cuando trabaja con imágenes en Android:
Desea cargar una imagen para la densidad de su dispositivo y la va a usar "tal cual", sin cambiar su tamaño real . En este caso, debería trabajar con elementos de diseño y Android le dará la imagen que mejor se ajuste.
Desea cargar una imagen para la densidad de su dispositivo, pero esta imagen se ampliará o reducirá . Por ejemplo, esto es necesario cuando desea mostrar un icono de lanzador más grande, o tiene una animación, lo que aumenta el tamaño de la imagen. En tales casos, para garantizar la mejor calidad de imagen, debe colocar su imagen en la carpeta mipmap . Lo que hará Android es que intentará recoger la imagen de un depósito de mayor densidad en lugar de escalarla. Esto aumentará la nitidez (calidad) de la imagen.
Por lo tanto, la regla general para decidir dónde colocar su imagen sería:
La implementación de Android de mipmaps en 4.3 es exactamente la técnica de 1983 explicada en el artículo de Wikipedia :)
Cada imagen de mapa de bits del conjunto de mapas mip es un duplicado reducido de la textura principal, pero con un cierto nivel de detalle reducido. Aunque la textura principal se seguiría utilizando cuando la vista sea suficiente para renderizarla con todo detalle, el renderizador cambiará a una imagen de mapa mip adecuada (...) cuando la textura se vea desde la distancia o en un tamaño pequeño.
Aunque esto se describe como una técnica para gráficos 3D (ya que menciona "ver desde la distancia"), se aplica igualmente a 2D (traducido como "dibujado es un espacio más pequeño", es decir, "reducido a escala").
Para un ejemplo concreto de Android, imagina que tienes una Vista con un determinado diseño de fondo (en particular, a BitmapDrawable
). Ahora usa una animación para escalarla a 0.15 de su tamaño original. Normalmente, esto requeriría reducir la escala del mapa de bits de fondo para cada fotograma. Sin embargo, esta reducción "extrema" puede producir artefactos visuales.
Sin embargo, puede proporcionar un mapa MIP, lo que significa que la imagen ya está renderizada previamente para algunas escalas específicas (digamos 1.0, 0.5 y 0.25). Siempre que la animación "cruce" el umbral de 0,5, en lugar de continuar reduciendo la escala de la imagen original de tamaño 1,0, cambiará a la imagen de 0,5 y la reducirá, lo que debería proporcionar un mejor resultado. Y así sucesivamente a medida que continúa la animación.
Esto es un poco teórico, ya que en realidad lo hace el renderizador. De acuerdo con la fuente de la clase Bitmap, es solo una sugerencia, y el renderizador puede o no respetarla.
/**
* Set a hint for the renderer responsible for drawing this bitmap
* indicating that it should attempt to use mipmaps when this bitmap
* is drawn scaled down.
*
* If you know that you are going to draw this bitmap at less than
* 50% of its original size, you may be able to obtain a higher
* quality by turning this property on.
*
* Note that if the renderer respects this hint it might have to
* allocate extra memory to hold the mipmap levels for this bitmap.
*
* This property is only a suggestion that can be ignored by the
* renderer. It is not guaranteed to have any effect.
*
* @param hasMipMap indicates whether the renderer should attempt
* to use mipmaps
*
* @see #hasMipMap()
*/
public final void setHasMipMap(boolean hasMipMap) {
nativeSetHasMipMap(mNativeBitmap, hasMipMap);
}
Sin embargo, no estoy muy seguro de por qué esto sería especialmente adecuado para los iconos de aplicaciones. Aunque Android en tabletas, así como algunos lanzadores (por ejemplo, GEL), solicitan un ícono "una densidad más alto" para mostrarlo más grande, se supone que esto se debe hacer usando el mecanismo regular (es decir drawable-xxxhdpi
, & c).
Una cosa que mencioné en otro hilo que vale la pena señalar: si está creando diferentes versiones de su aplicación para diferentes densidades, debe conocer el directorio de recursos "mipmap". Esto es exactamente como los recursos "dibujables", excepto que no participa en la eliminación de densidad al crear los diferentes objetivos de apk.
https://plus.google.com/105051985738280261832/posts/QTA9McYan1L
Dado que estaba buscando una respuesta aclaratoria a esto para determinar el tipo correcto de iconos de notificación, me gustaría agregar esta declaración clara al tema. Es de http://developer.android.com/tools/help/image-asset-studio.html#saving
Nota: Los archivos de iconos del lanzador se encuentran en una ubicación diferente a la de otros iconos. Están ubicados en la carpeta mipmap /. Todos los demás archivos de iconos residen en la carpeta dibujable / de su proyecto.
Hay dos casos con los que se enfrenta cuando trabaja con imágenes en Android:
- Desea cargar una imagen para la densidad de su dispositivo y la va a usar "tal cual", sin cambiar su tamaño real. En este caso, debería trabajar con elementos de diseño y Android le dará la imagen que mejor se ajuste.
- Desea cargar una imagen para la densidad de su dispositivo, pero esta imagen se ampliará o reducirá. Por ejemplo, esto es necesario cuando desea mostrar un icono de lanzador más grande, o tiene una animación, lo que aumenta el tamaño de la imagen. En tales casos, para garantizar la mejor calidad de imagen, debe colocar su imagen en la carpeta mipmap. Lo que hará Android es que intentará recoger la imagen de un depósito de mayor densidad en lugar de escalarla.
ENTONCES
Por lo tanto, la regla general para decidir dónde colocar su imagen sería:
Los iconos del iniciador siempre van a la carpeta mipmap.
Las imágenes, que a menudo se amplían (o se reducen extremadamente) y cuya calidad es fundamental para la aplicación, también van a la carpeta mipmap.
Todas las demás imágenes son dibujables habituales.
Cita de este artículo.
Al crear apks separados para diferentes densidades, se eliminan las carpetas dibujables para otras densidades. Esto hará que los íconos aparezcan borrosos en dispositivos que usan íconos de iniciador de mayor densidad. Dado que las carpetas de mipmap no se eliminan, siempre es mejor usarlas para incluir los iconos del iniciador.
res/
mipmap-mdpi/ic_launcher.png (48x48 pixels)
mipmap-hdpi/ic_launcher.png (72x72)
mipmap-xhdpi/ic_launcher.png (96x96)
mipmap-xxhdpi/ic_launcher.png (144x144)
mipmap-xxxhdpi/ic_launcher.png (192x192)
MipMap para el icono de la aplicación para el lanzador
http://android-developers.blogspot.co.uk/2014/10/getting-your-apps-ready-for-nexus-6-and.html
https://androidbycode.wordpress.com/2015/02/14/goodbye-launcher-drawables-hello-mipmaps/
Si crea un APK para una resolución de pantalla de destino como HDPI, la herramienta de empaquetado de activos de Android, AAPT, puede eliminar los elementos de diseño para otras resoluciones que no necesite, pero si está en la carpeta mipmap, estos activos permanecerán en el APK, independientemente de la resolución de destino.
La estrella de HGTV, Christina Hall, revela que le diagnosticaron envenenamiento por mercurio y plomo, probablemente debido a su trabajo como manipuladora de casas.
Recientemente salió a la luz un informe policial que acusa a la estrella de 'Love Is Blind', Brennon, de violencia doméstica. Ahora, Brennon ha respondido a los reclamos.
Conozca cómo Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia mientras organizaba la primera celebración de Acción de Gracias desde que murió su madre, Naomi Judd.
Descubra por qué un destacado experto en lenguaje corporal cree que es fácil trazar "tales paralelismos" entre la princesa Kate Middleton y la princesa Diana.
Los inodoros arrojan columnas de aerosol invisibles con cada descarga. ¿Como sabemos? La prueba fue capturada por láseres de alta potencia.
Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?
Anteriormente, Kotaku informó que un hotel Godzilla se estaba abriendo en Tokio este abril. Junto al hotel, estaba programada la aparición de una enorme cabeza de 'Zilla, pero todo lo que hemos visto fueron imágenes conceptuales computarizadas.
Foto: Getty Desde que lanzó The Boring Company hace un año, Elon Musk ha mencionado varios sitios de construcción posibles para el negocio de perforación de túneles y ha descartado una vaga referencia a una aprobación gubernamental "verbal" para un túnel Hyperloop que conecta la ciudad de Nueva York y Washington. , CC. Pero ahora sabemos que al menos un alcalde quiere que Musk perfore un agujero debajo de su ciudad.
Tapas elásticas de silicona de Tomorrow's Kitchen, paquete de 12 | $14 | Amazonas | Código promocional 20OFFKINJALids son básicamente los calcetines de la cocina; siempre perdiéndose, dejando contenedores huérfanos que nunca podrán volver a cerrarse. Pero, ¿y si sus tapas pudieran estirarse y adaptarse a todos los recipientes, ollas, sartenes e incluso frutas en rodajas grandes que sobran? Nunca más tendrás que preocuparte por perder esa tapa tan específica.
Hemos pirateado algunas ciudades industriales en esta columna, como Los Ángeles y Las Vegas. Ahora es el momento de una ciudad militar-industrial-compleja.
El equipo está a la espera de las medallas que ganó en los Juegos Olímpicos de Invierno de 2022 en Beijing, ya que se está resolviendo un caso de dopaje que involucra a la patinadora artística rusa Kamila Valieva.
Miles de compradores de Amazon recomiendan la funda de almohada de seda Mulberry, y está a la venta en este momento. La funda de almohada de seda viene en varios colores y ayuda a mantener el cabello suave y la piel clara. Compre las fundas de almohada de seda mientras tienen hasta un 46 por ciento de descuento en Amazon
El jueves se presentó una denuncia de delito menor amenazante agravado contra Joe Mixon.
El Departamento de Policía de Lafayette comenzó a investigar a un profesor de la Universidad de Purdue en diciembre después de recibir varias denuncias de un "hombre sospechoso que se acercaba a una mujer".
Al igual que el mundo que nos rodea, el lenguaje siempre está cambiando. Mientras que en eras anteriores los cambios en el idioma ocurrían durante años o incluso décadas, ahora pueden ocurrir en cuestión de días o incluso horas.
Estoy de vuelta por primera vez en seis años. No puedo decirte cuánto tiempo he estado esperando esto.
“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.
Creo, un poco tarde en la vida, en dar oportunidades a la gente. Generosamente.