gpt4 book ai didi

android - 使用 RemoteView 设置位图不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:07 25 4
gpt4 key购买 nike

我正在编写一个小部件,我需要下载并在布局上设置位图。我尝试过的一切似乎都不起作用。

我现在创建了一个测试位图来设置 View ,[更新] 这有效。

  Bitmap.Config config = Bitmap.Config.ARGB_8888;
Bitmap bitmap = Bitmap.createBitmap(imageActiveWidth, imageHeight, config);
Canvas canvas = new Canvas(bitmap); // Load the Bitmap to the Canvas
Paint paint = new Paint();
paint.setColor(0xFFFFCCFF);
canvas.drawRect(0, 0, imageActiveWidth, imageHeight, paint);
views.setImageViewBitmap(resId, bitmap);

使用资源文件确实有效:

  Bitmap placeholderBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.placeholder_medium);
views.setImageViewBitmap(imageSlotId, placeholderBitmap);

但是使用下载的位图似乎不起作用。(异步任务下载位图后,我有一个方法 setBitmap 是一行:

 views.setImageViewBitmap(resId, proxy);

结果 - 屏幕是白色的,没有位图

我真的不知道如何让它工作,因为我需要能够下载位图并进行设置。

最佳答案

找到解决方案。我认为它与这个错误有关: http://code.google.com/p/android/issues/detail?id=8489

通过将 setBitmap 方法更改为以下内容解决:

private void setBitmap(RemoteViews views, int resId, Bitmap bitmap){
Bitmap proxy = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(proxy);
c.drawBitmap(bitmap, new Matrix(), null);
views.setImageViewBitmap(resId, proxy);
}

我需要调用: AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, views);
在设置位图之后。

出于某种原因,当我回到它时,这不起作用。我的 View 是 AdapterViewFlipper,所以我使用上述方法调用 widgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.content); 导致位图呈现。

关于android - 使用 RemoteView 设置位图不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14338091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com