【问题标题】:Canvas get size keep changes with different devices screen size画布获取尺寸保持随不同设备屏幕尺寸的变化
【发布时间】:2014-04-11 10:06:38
【问题描述】:

我试图在视图的画布上画一个圆圈,我遇到一个问题,在不同屏幕尺寸上测试代码后,我发现绘图尺寸发生了变化,尽管我给视图的静态宽度和高度为 300 . 我希望它在所有设备上都具有相同的尺寸。

【问题讨论】:

    标签: android canvas ondraw


    【解决方案1】:

    这必然会发生,因为设备具有不同的密度。 尝试使用以下转换为像素/dpi。

    private float dpFromPixels(float px)
    {
        return px / this.getContext().getResources().getDisplayMetrics().density;
    }
    
    private float pixelsFromDp(float dp)
    {
        return dp * this.getContext().getResources().getDisplayMetrics().density;
    }
    

    【讨论】:

    • 好的,基本上我对它在 7" 选项卡上的大小感到满意。我如何使用这两种方法将其设置为始终如此。@Lazy Ninja
    • 使用方法 dpFromPixels()。我相信 height = dpFromPixels(300) 会完成这项工作。
    • 我试过了,可惜画布上的图还是小了
    • 哎呀我的意思是pixelsFromDp(),用那个。
    【解决方案2】:

    密度是屏幕每平方区域的像素数。密度较高的设备每平方英寸的像素比密度较低的设备多,因此 5 英寸 1080p 设备上的 300x300 像素看起来会比 5 英寸 720p 设备上小很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-30
      • 2012-01-27
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      相关资源
      最近更新 更多