Para mi primer y más asombroso proyecto de Android, quiero crear un widget de pantalla de inicio que muestra uno de esos Arc Clocks que todos los niños están delirando en estos días.¿Cuál es la manera correcta de implementar un widget de Android con contenido dibujado dinámicamente?
Sobre la base de las limitaciones de RemoteViews, parece a mí que la forma adecuada para conseguir que realmente dibuja en la pantalla es utilizar un ImageView en la disposición real, a continuación, cuando se está poniendo al día, crear un ShapeDrawable o dos y dibujar en un recién creado . Luego, configure ese mapa de bits como fuente de ImageView.
Sin embargo, hay algo acerca de ese proceso en el que no estoy creciendo. El siguiente es el código que traté de usar para actualizar el widget. No obtengo nada dibujado en la pantalla. ImageView tiene una imagen de marcador de posición simplemente establecida por su propiedad src
. Cuando no ejecuto el código para actualizarlo a mi dibujo, la imagen del marcador de posición permanece en su lugar. Por lo tanto, sé que este código está haciendo algo, obviamente no es el lo correcto cosa.
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
Bitmap bitmap = Bitmap.createBitmap(100, 100, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
ShapeDrawable drawable = new ShapeDrawable(new ArcShape(0, 360));
drawable.getPaint().setColor(0xffff0000);
drawable.getPaint().setStrokeWidth(5.0f);
drawable.setIntrinsicWidth(100);
drawable.setIntrinsicHeight(100);
drawable.draw(canvas);
views.setImageViewBitmap(R.id.ImageView01, bitmap);
appWidgetManager.updateAppWidget(appWidgetId, views);
Sabía que no podía ser tan fácil. Entonces, ¿estoy yendo en la dirección correcta?
actualización
Ok, tal vez era demasiada información. La pregunta que realmente estoy tratando de hacer es la siguiente:
Si quiero dibujar formas en un widget, ¿debo usar un ImageView y crear un mapa de bits de ShapeDrawable o hay una forma más apropiada de dibujar en un widget donde está limitado por RemoteViews?
¿Estás diciendo que el marcador de posición todavía está allí cuando intentas dibujar algo sobre él? – sandos
No, la imagen del marcador de posición desaparece. Termina con nada visual en la pantalla. Sin embargo, puedo mantener presionada la tecla y eliminar el widget. – MojoFilter