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