【问题标题】:Set size of custom view设置自定义视图的大小
【发布时间】:2016-05-29 18:48:09
【问题描述】:

我正在创建自定义视图。在onDraw 方法中,我绘制了一个位图。 Bitmaps 可以有不同的高度。我需要在图片加载后设置视图的高度。我在日志中得到了onMeasureonDrawonMeasureonDraw 之前被调用。在教程中说大小应该设置在onMeasure。如果高度的计算很耗时并且我需要在计算后设置它怎么办?在调用 onDraw 之前是否必须预先计算尺寸?

【问题讨论】:

  • 此时您的位图是否已经解码?
  • 不,我在 onDraw 中解码它们。这是正确的方法吗?
  • 老实说,我可能会解码不在 onDraw 内部的位图。您可能应该在设置时对其进行解码,无论您是设置路径还是资源等。在 onDraw 中执行此操作可能会导致性能问题。

标签: java android view ondraw onmeasure


【解决方案1】:

你可以试试

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);

注意:还有其他可用的方法来解码资源等, 我只是以 decodeFile 为例。这将为您提供位图的尺寸,而无需对其进行完全解码,这 将允许您将测量的尺寸设置为您需要的尺寸。 尺寸将在选项中。

final int width = options.outWidth;
final int height = options.outHeight;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 2012-09-05
    • 2012-03-03
    • 1970-01-01
    • 2018-11-07
    相关资源
    最近更新 更多