【问题标题】:Efficient drawing of Android custom viewAndroid自定义视图的高效绘制
【发布时间】:2018-04-26 18:30:21
【问题描述】:

我有一个 Android 自定义视图,它显示从服务器下载的图像网格。图片在后台下载,图片下载后添加到列表中,触发视图重绘。

因此,每次下载图像时,我都会绘制背景,然后是列表中的图像。这种方法会导致出现一些闪烁。另外,我发现只为一张新图像绘制所有图像效率低下。

是否可以在 OnDraw 事件之外的视图中绘制一些东西?因此,我只会绘制新下载的图像,而不是整个列表。
使用 Windows 窗体,我可以在 Paint 事件之外执行此操作:

Graphics g = this.CreateGraphics(); // this being a Control (<=> View), Graphics <=> Canvas
g.DrawSomething()
g.Dispose()

Android 中是否有类似的功能,或者我的方法不正确?

【问题讨论】:

  • 您应该考虑使用带有网格布局管理器的回收器视图,无需为此类用例编写自定义视图
  • 可以看SurfaceView类,参考this
  • @JoeLv-MSFT 我最终使用了 SurfaceView 类。如果您将评论添加为答案,我会接受。

标签: android xamarin.android android-custom-view


【解决方案1】:

你可以使用SurfaceView,如果你的绘图频繁,应该考虑这个类,here是如何在SurfaceView上绘制位图。

【讨论】:

    猜你喜欢
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多