2

我在为自定义模拟时钟小部件创建位图时遇到了一些麻烦。当我使用 RGB_565 配置时,图像显示正常,但没有透明背景。当我将配置更改为 ARGB_8888 时,我的图像根本没有显示。

   static void updateTime(Context context) {
    int iW = 400, iH = 400;

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
    R.layout.clock22analog);

    Bitmap bitmap = Bitmap.createBitmap(iW, iH, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);

    Paint paint = new Paint();
    paint.setColor(Color.WHITE);
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeWidth(getPxl(context, 8));
    paint.setAntiAlias(true);

    canvas.drawCircle(iW/2, iH/2, getPxl(context, 100), paint);

    remoteViews.setImageViewBitmap(R.id.analogclock, bitmap);

    ComponentName clockWidget = new ComponentName(context,
    Clock_22_analog.class);
    AppWidgetManager appWidgetManager = AppWidgetManager
    .getInstance(context);
    appWidgetManager.updateAppWidget(clockWidget, remoteViews);
}

我究竟做错了什么?

感谢您的回答。

4

1 回答 1

-1

您可能需要清除画布。

Canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR)
于 2013-02-01T02:46:57.753 回答