android - ARGB_8888 位图不可见,而 RGB_565 是

标签 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);
}

我做错了什么?

感谢您的回答。

最佳答案

您可能需要清除 Canvas 。

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

关于android - ARGB_8888 位图不可见,而 RGB_565 是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638087/

相关文章:

java - 从手机运行时应用程序崩溃,但从计算机启动时运行正常

javascript - 页面滚动时移动设备上的 Fabric (Canvas)

javascript - Html 到 Canvas 到 Base64 到 PDF

android - 具有平铺模式重复和圆角的位图

c++ - 使用 ImageMagick 修改图像对比度/亮度

android - MDM 可以限制用户更改日期时间设置吗

android - Retrofit2 和 Kotlin

javascript - onkeyup 和 onkeydown 没有捕捉到任何东西

java - 从外部存储读取图像文件并放置在 ImageView 中

android - 如何使布局(元素)匹配所有屏幕并删除按钮之间的空间