2011-03-24 10 views
6

Actualmente estoy tratando de crear un objeto Android View dinámicamente y luego agregar esta vista a un widget basado en alguna selección de usuario de una galería. El problema es que no tiene setters para recursos dibujables. La única forma de establecer las imágenes es si predefinir un diseño xml. No puedo configurar las imágenes seleccionadas por el usuario.Cómo agregar drawables a una vista mediante programación desde una URL pero no en formato xml

Aunque puedo crear una vista, no tendrá las propiedades correctas establecidas. Traté de implementar el mío y de exponer los dibujables, pero luego corrí al tema "Clase no encontrada" y he leído que es imposible de recorrer.

¿Es posible proporcionar algo en el AttributeSet en el constructor?

Realmente difícil, ni siquiera necesito una vista personalizada si pudiera encontrar una manera de establecer las opciones.

android:drawable1="@drawable/predefined_image" 
android:drawable2="@drawable/predefined_image" 

y pasar esta a través de un AttributeSet ya que sé que sólo toma estas y crea dibujables de ellos.


bien permite aclarar la cuestión un poco,

tengo un archivo de diseño xml

<AndroidSystemWidget 
android:drawable1="@Drawable/drawable1" 
android:drawable2="@Drawable/drawable2" 
/> 

Ahora tengo 2 archivos PNG en la tarjeta SD /sdcard/imágenes/imagen1. png /sdcard/pictures/image2.png

Ahora en el código no hay setters expuestos para drawable1 o 2 solo hay un solo constructor

AndroidSystemWidget widget = new AndroidSystemWidget(Context, AttributeSet) 

quiero para crear esta AndroidSystemWidget en mi configuración del widget con los dos archivos PNG anteriores conjunto de drawable1 y drawable2 y luego configurarlo a través de puntos de vista sobre el proveedor widget de aplicación.

+0

Publicar algunos ejemplos del código que intenta utilizar podría ayudar a las personas a responder su pregunta. – Squonk

+0

Por lo que yo sé, no puede hacer referencia a rutas de archivos desde xml. ¿Por qué no modificar el widget en su lugar? –

+0

No quiero hacer referencia a las rutas desde xml. El punto es que no puedo usar xml porque no sé cuáles son las imágenes antes de ingresar a la pantalla de configuración y pedirle al usuario que las seleccione de una galería. Necesito poder establecer los 2 elementos imprimibles 1 y 2 pero fuera del XML, pero no hay definidores para drawable1 y drawable2. Eso es lo que estoy luchando por hacer. Creé mi propia versión del widget, pero Android no le permite usar widgets personalizados. – DeliveryNinja

Respuesta

8

Su pregunta es un poco vago, así que perdónenme si me malinterpreten, pero podría simplemente utilizar un ImageView y luego fijar su imagen a través de llamadas: setImageFoo

imageView.setImageBitmap(bitmap); 
imageView.setImageResource(R.drawable.my_image); 
imageView.setImageDrawable(drawable); 

Si está utilizando una vista personalizada y dibujo utilizando llamadas de lienzo, entonces puede usar las diversas rutinas drawBitmap también.

Si está buscando cargar imágenes a través de la red como lo indica su título, entonces puede consultar this answer, que también tiene un enlace a la biblioteca DroidFu.

+0

Tengo una vista personalizada, pero debido a las restricciones en las clases permitidas para agregar a un widget, debo usar un proveedor existente de widgets de aplicaciones de Android.El problema es que solo puede tener sus propiedades establecidas a través de xml, necesito una forma de crear la misma configuración xml pero en lugar de usar android: drawable = "@ drawable/resource1" necesito hacer esto en código desde una ruta de archivo. No hay getters y setters expuestos para el conjunto del drawable en xml. Solo attributeSet en el constructor. Ah, y gracias por el enlace, será útil para más tarde;) – DeliveryNinja

Cuestiones relacionadas