ARGB_8888位图不可见,而RGB_565则可见



我在为自定义模拟时钟小部件创建位图时遇到了一些麻烦。当我使用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);
}

我做错了什么?

谢谢你的回答。

您可能需要清除画布。

Canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR)

相关内容

  • 没有找到相关文章

最新更新