【问题标题】:Canvas Layout is not working properly画布布局无法正常工作
【发布时间】:2012-10-10 23:12:26
【问题描述】:

我通过使用 OnDraw 方法在画布上绘制矩形创建了一个地图。这在三星 s2 上运行良好,但是当我将它安装在 s3 中时,画布似乎太小了。我该怎么办?

我使用 Surface 视图来绘制矩形。

【问题讨论】:

    标签: android canvas surfaceview ondraw


    【解决方案1】:

    Galaxy S2 是 hdpi,而 S3 是 xhdpi,所以这可能是矩形看起来更小的原因。我建议覆盖 onMeasure,然后根据画布的当前高度和宽度设置矩形的高度和宽度。

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int parentViewWidth = MeasureSpec.getSize(widthMeasureSpec);
    int parentViewHeight = MeasureSpec.getSize(heightMeasureSpec);
    // ... take into account the parent's size as needed ...
    super.onMeasure(
        MeasureSpec.makeMeasureSpec(newWidth, MeasureSpec.EXACTLY), 
        MeasureSpec.makeMeasureSpec(newHeight, MeasureSpec.EXACTLY));
    

    }

    编辑:刚刚意识到您说您使用 SurfaceView 来绘制矩形而不是 View。在您的 onDraw 中,只需获取画布的当前高度和宽度,然后根据这些尺寸绘制矩形,而不是硬编码矩形的固定尺寸。希望这会有所帮助

    【讨论】:

    • 我已经使用矩形坐标实现了一个单独的数据库,因为我正在进行最短路径分析。所以我不能以任何理由改变矩形坐标。我有 Web 服务,可以在其中检索矩形坐标。它在 S2 上完美运行 .. 但在 S3 中却不行 :( 我不知道如何修复它!
    猜你喜欢
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2012-06-28
    • 1970-01-01
    相关资源
    最近更新 更多