What's the proper way to implement an Android widget with dynamically drawn content?

后端 未结 3 1197
Happy的楠姐
Happy的楠姐 2020-12-29 08:11

For my first and most awesomest Android project, I want to create a home screen widget which displays one of those Arc Clocks that all the kids are raving about these days.<

3条回答
  •  暖寄归人
    2020-12-29 08:36

    This works great:

    Paint p = new Paint(); 
    p.setAntiAlias(true);
    p.setStyle(Style.STROKE);
    p.setStrokeWidth(8);
    p.setColor(0xFFFF0000);
    
    Bitmap bitmap = Bitmap.createBitmap(100, 100, Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    canvas.drawArc(new RectF(10, 10, 90, 90), 0, 270, false, p);
    
    RemoteViews views = new RemoteViews(updateService.getPackageName(), R.layout.main);
    views.setImageViewBitmap(R.id.canvas, bitmap);
    
    ComponentName componentName = new ComponentName(updateService, DashboardAppWidgetProvider.class);
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(updateService);
    appWidgetManager.updateAppWidget(componentName, views);
    

    I guess the problem with your original code was just the way of drawing the arc - that's why nothing showed up.

    BTW: You can find a customizable "Arc Clock" with a very small memory footprint in the Market by searching for "arc clock"!

提交回复
热议问题