【发布时间】:2014-10-20 18:12:25
【问题描述】:
我尝试在 Android 上创建一个小部件,显示一个动态生成的图像,比小部件大。
1。我是怎么做的
这可以通过 ListView 来完成,适配器是一个 RemoteViewsService,我在其中构建位图。然后我创建一个 RemoteViews,并用我的位图调用 setImageViewBitmap。 它正在工作,小部件可以很好地显示我的图像宽度垂直滚动(我想要的!)。
Widget => ListView => setRemoteAdapter(RemoteViewsService) => getViewAt() => RemoteViews => 创建视图并检索位图 => setImageViewBitmap
2。我的记忆问题
当小部件调整大小时,我重新绘制位图并再次执行此工作(图像取决于小部件大小)。而且我看到内存每次都会增长到内存不足...
感谢您的帮助。
【问题讨论】:
-
你可以在java中删除一个对象,方法是给它分配null。
-
并使用 Runtime.getRuntime().gc() 调用 gc
-
我不能分配 null 因为在 RemoteViewsFactory.getViewAt() 的实现中返回了 remoteView :-(
标签: android widget out-of-memory android-remoteview