Android 如何将分辨率与其他分辨率进行比较

Android 如何将分辨率与其他分辨率进行比较,android,android-resolution,Android,Android Resolution,在我的应用程序中,我必须做一些特定于分辨率的工作,我必须获得分辨率并将其相应地发送到服务器。现在我的服务器有以下分辨率的图像 320*480 480*800 800*1200 720*1280 1080*1920 1440*2560 我通过以下方式得到了解决方案 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width =

在我的应用程序中,我必须做一些特定于分辨率的工作,我必须获得分辨率并将其相应地发送到服务器。现在我的服务器有以下分辨率的图像

  • 320*480
  • 480*800
  • 800*1200
  • 720*1280
  • 1080*1920
  • 1440*2560
  • 我通过以下方式得到了解决方案

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;
    
    正如我们所知,有很多分辨率,所以会有一些设备的分辨率与我上面提到的分辨率略有不同,比如我有一个800px*1172px的设备

    我想要什么

    那么,请告诉我如何将设备分辨率与 决议并发送维持决议的决议 分类图像

    另外,如果设备的分辨率在我预先确定的分辨率集中不存在,那么我希望发送更接近它的分辨率

    请帮帮我,我不知道怎么做

    800px*1172px

    您知道这实际上是一个800x1200显示器吗?获取屏幕尺寸的方式考虑了设备的屏幕导航栏。如果需要考虑导航栏,请参阅和类似问题

    我想让决议更接近它

    可能的解决方案是使用支持的维度数组并查找与传递的宽度/高度最接近的值:

    final int[] supportedHeight = {320, 480, 720, 800, 1080, 1440};
    final int[] supportedWidth = {480, 800, 1200, 1280, 1920, 2560};
    
    
    public static int getClosest(int n, int[] values){
        int dst = Math.abs(values[0] - n);
        int position = 0;
        for(int i = 1; i < values.length; i++){
            int newDst = Math.abs(values[i] - n);
            if(newDst < dst){
                position = i;
                dst = newDst;
            }
        }
        return values[position];
    }
    
     Log.d("h", getClosest(1337, supportedHeight)+""); //1440
     Log.d("w", getClosest(1172, supportedWidth)+"");  //1200
    
    final int[]supportedHeight={320480、720800、10801440};
    final int[]supportedWidth={480800128019202560};
    公共静态int getClosest(int n,int[]值){
    int dst=Math.abs(值[0]-n);
    int位置=0;
    对于(int i=1;i
    我知道有人会这么说。但我只是把它作为一个例子,你能告诉我这是如何工作的吗?我添加了更合适的变量名,参数getClosest(int n,int[]值)是什么。基本上,这段代码迭代数组,并查找最接近传递的数字的索引。因此,将支持的高度和宽度添加到数组中,然后使用此方法传递从设备获取的值。通过这种方式,您将找到您支持的最佳匹配宽度/高度以保持简单:
    是您适当的宽度/高度数组,
    n
    是您从设备获得的值伟大,或者如果我将设备大小作为我在数组中声明的完美大小,例如480*800,也在数组中。那么在这种情况下,它会给我这个尺寸吗?