2011-12-22 20 views
12

estoy tratando de mantener a dos intentos Icon_Picker:* Cualquier * forma de vincular Android/gráficos dibujables a/activos?

org.adw.launcher.icons.ACTION_PICK_ICON 

y

com.betterandroid.launcher2.icons.PICK_ICON_ACTION 

Desafortunadamente ADW, Go Launcher y LauncherPro buscar dibujables en el /drawable ya sea usando la intención mencionados anteriormente, o mediante el uso de una XML que se ve en /drawable

Considerando que el viejo intento de BetterAndroid busca imágenes en la carpeta /assets. Ahora, sé del gran truco para dibujables con el fin de suministrar una dibujable de un XML:

<?xml version="1.0" encoding="UTF-8"?> 
<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/com_aac_cachemate_demo_cachemate" /> 
</selector> 

lo tanto en lugar de suministrar un gráfico, señalo a un gráfico existente - Bueno para no necesitar archivos duplicados al hacer referencia a la misma imagen, pero con diferentes nombres/identificadores.

Mis preguntas:

1) ¿Hay algún truco equivalente que trabajar al hacer referencia a la /assets en lugar de dibujable?

2) Si tuviera que usar AssetManager para leer los activos y hacerlos dibujables: a) ¿Podrían ser leídos por el análisis intencionado para esos objetos extraíbles? b) ¿El tamaño de la aplicación inevitablemente duplicaría su tamaño de todos modos? c) ¿Cómo implementaría AssetManager correctamente para que esto funcione? Algo como:

sampleimage= BitmapFactory.decodeResource(context.getResources(), R.drawable.sampleimage); 

¿quizás? ¿O habría mejores opciones para getAsset() de una matriz tal vez?

Lo que estoy tratando de lograr no sólo se tienen las imágenes en /drawable sino también de alguna manera relacionado con /assets de modo que ambas intenciones pueden escanear y encontrar las dibujables y mostrar en su gridview sin tener que duplicar los gráficos (poniendo ellos en ambos activos y carpetas dibujables. Gracias por cualquier ayuda!

EDIT: android: how to load xml file from assets directory? fue una lectura muy útil, pero no estoy seguro de que descarte por completo lo que estoy tratando de lograr. Cualquier/Todos los comentarios son apreciados

Así que: Parece que tendría que hacerlo de otra manera, si es que funciona en absoluto. (Por el otro lado) lo que significa que debo guardar los gráficos en la carpeta assets y luego usar AssetManager para ponerlos en drawable. ¿Alguna sugerencia sobre cómo hacer eso? ¿No hay forma de hacer referencia a los activos mediante el uso de XML en la carpeta drawable?

lo tanto, las cuestiones que realmente importan a mí, Si tuviera que utilizar AssetManager para leer los activos y hacerlos dibujables:

1) Lo que sea legible por la exploración de Intención para aquellos dibujables?

2) ¿El tamaño de la aplicación inevitablemente se duplicaría de todos modos?

Respuesta

1

¿Hay algún truco equivalente que funcione al hacer referencia a/assets en lugar de drawable?

No, lo siento.

Si tuviera que utilizar AssetManager para leer los activos y hacerlos dibujables

Voy a interpretar esto en el sentido de crear Drawable objetos Java.

a) ¿Podrían ser leídos por el escaneado intencionado para esos modelos?

Intent s no "escanee para dibujar" más de lo que las hojas de papel escriben letras o las balas disparan a las personas. Por lo tanto, no tengo idea de lo que estás hablando. Además, sospecho que las únicas personas que podrían responder esa pregunta son los desarrolladores de las dos aplicaciones de terceros que te interesan. Demonios, ninguna de esas dos acciones Intent parece documentada: esta es la única página de la totalidad. Internet que parece mencionar com.betterandroid.launcher2.icons.PICK_ICON_ACTION, basado en una búsqueda en Google, por lo que es muy posible que los autores de esas aplicaciones no estén buscando que usted haga lo que está tratando de hacer.

b) ¿El tamaño de la aplicación inevitablemente se duplicaría de todos modos?

Si con "tamaño" quiere decir "tamaño en disco", entonces no, leer cosas en tiempo de ejecución no aumenta el espacio en disco.

c) ¿Cómo implementaría AssetManager correctamente para que esto funcione?

llamada open() en AssetManager para conseguir un InputStream en la imagen, a continuación, pasar a que BitmapFactory.decodeStream().

Cuestiones relacionadas