[英]Android GridView with Both Horizontal and Vertical Scrolbars at the same time
[英]Android OpenGL Viewport same view on all devices and both horizontal and vertical
我正在尋找設置OpenGL的正確方法,以便相同的信息將以任何方式顯示在任何屏幕上。 我確實知道,旋轉時所有內容都會顯示為壓縮狀態,但是會顯示相同的信息。 有沒有辦法做到這一點?
為了更清晰,請想象一個景觀平板電腦,它在屏幕中央有一個圓圈。 當用戶旋轉平板電腦和旋轉平板電腦的高度(因為寬度和反之亦然)時,他們將看到一個細長的橢圓形,而不是看到一個圓形。
初始化OpenGL ES時,可以根據屏幕大小設置投影矩陣的比率。 如果將其設置為1,則無論屏幕比例如何,縱向和橫向圖像都將以相同的尺寸修改投影矩陣。 應該是您需要的東西。
例:
// correct proportion according width to height ratio
public void onSurfaceChanged(GL10 glUnused, int width, int height) {
GLES20.glViewport(0, 0, width, height);
float ratio = (float) width / height;
Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1, 1, 2.0f, 250);
}
// disregard screen width/height ratio
public void onSurfaceChanged(GL10 glUnused, int width, int height) {
GLES20.glViewport(0, 0, width, height);
Matrix.frustumM(mProjMatrix, 0, -1, 1, -1, 1, 2.0f, 250);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.