ARGB_8888位图不可见,而RGB_565是

时间:2013-02-01 01:08:44

标签: android canvas bitmap config

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

我做错了什么?

感谢您的回答。

1 个答案:

答案 0 :(得分:-1)

您可能需要清除画布。

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