Android如何确定屏幕分辨率?
我有一个android设备,允许用户更改屏幕分辨率。例如,我有一个1080显示器,我把它的分辨率设置为720。我可以验证电视设置中的分辨率是否已更改。然而,Android似乎没有使用这些信息。相反,它检索并使用物理显示分辨率。所以它在1080中渲染所有内容,然后缩小到720。这是浪费资源Android如何确定屏幕分辨率?,android,surfaceholder,Android,Surfaceholder,我有一个android设备,允许用户更改屏幕分辨率。例如,我有一个1080显示器,我把它的分辨率设置为720。我可以验证电视设置中的分辨率是否已更改。然而,Android似乎没有使用这些信息。相反,它检索并使用物理显示分辨率。所以它在1080中渲染所有内容,然后缩小到720。这是浪费资源 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size)
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
即使电视告诉我屏幕分辨率是720,我仍然得到1080作为代码的输出。我的假设正确吗
我怎样才能改变这个
我知道,每个窗户都有一个表面,原则上我可以改变它的大小:
getWindow().takeSurface(new SurfaceHolder.Callback2() {
@Override
public void surfaceRedrawNeeded(SurfaceHolder holder) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
holder.setFixedSize(200, 100);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
});
但我明白了
java.lang.UnsupportedOperationException: Currently only support sizing from layout
除了创建我自己的任意大小的曲面外,还有其他方法可以改变分辨率吗(它还能工作吗?当您改变屏幕分辨率时,DisplayMetrics是否有差异?没有差异,输出是相同的。我做了以下操作:
DisplayMetrics=newdisplaymetrics();getWindowManager().getDefaultDisplay().getMetrics(度量);System.out.println(“度量:+metrics.widthPixels+“x”+metrics.heightPixels)代码>