如何将分辨率与其他一些分辨率进行比较
How to compare the resolutions with some other resolutions
在我的应用程序中,我必须做一些特定于分辨率的工作,我必须获得分辨率并将其相应地发送到服务器。现在我的服务器有以下分辨率的图像...
- 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
我想要什么
So tell me how can I compare the device resolution with the set of
resolution and send the resolution which maintain the resolution
categorized images.
另外,如果设备的分辨率在我预先确定的一组分辨率中不存在,那么我想发送更接近它的分辨率。
请帮帮我,我不知道该怎么做。
800px * 1172px
你知道这实际上是一个 800x1200 的显示器吗?获取屏幕尺寸的方式会考虑设备的 on-screen 导航栏。如果您需要考虑导航栏,请参阅 this 和类似问题。
I want to send the resolution closer to it.
可能的解决方案使用您支持的维度数组并找到最接近您传递的值 width/height:
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
在我的应用程序中,我必须做一些特定于分辨率的工作,我必须获得分辨率并将其相应地发送到服务器。现在我的服务器有以下分辨率的图像...
- 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
我想要什么
So tell me how can I compare the device resolution with the set of resolution and send the resolution which maintain the resolution categorized images.
另外,如果设备的分辨率在我预先确定的一组分辨率中不存在,那么我想发送更接近它的分辨率。
请帮帮我,我不知道该怎么做。
800px * 1172px
你知道这实际上是一个 800x1200 的显示器吗?获取屏幕尺寸的方式会考虑设备的 on-screen 导航栏。如果您需要考虑导航栏,请参阅 this 和类似问题。
I want to send the resolution closer to it.
可能的解决方案使用您支持的维度数组并找到最接近您传递的值 width/height:
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