簡體   English   中英

android屏幕分辨率和大小

[英]android screen resolutions and sizes

我目前正在開發一個引起我麻煩的android應用程序。 我的應用嚴重依賴於正確顯示在屏幕上的圖像。 不幸的是,諸如FWVGA / WVGA分辨率差異854與800之類的問題使我遇到了一些實際問題,這是其他尺寸/密度和分辨率所致。

我不知道我是否只是在這里遺漏了要點,但是我該如何在兩種分辨率下正確顯示我的應用程序,而又不“擠壓”我的圖像或砍掉一些給我黑條的東西?

似乎沒有一個立即可用的解決方案,在該解決方案中,我只能讓它從右側屏幕的drawable文件夾自動顯示不同的圖像。

我曾嘗試使用displaymetrics,但除非我明確聲明它支持所有屏幕尺寸,否則Android OS實際上會對我的應用“說謊”有關當前分辨率。

有人告訴我,有一個簡單的解決方案。

我該如何在兩種分辨率下正確顯示我的應用程序而不會“壓扁”我的圖像或減少給我黑條等的切割?

恕我直言,您首先需要重新設計GUI:

我的應用嚴重依賴於正確顯示在屏幕上的圖像。

恕我直言,這在任何地方都不能很好地工作。 例如,用戶可以將Windows(包括瀏覽器)的大小調整為任何所需的大小。

似乎沒有一個立即可用的解決方案,在該解決方案中,我只能讓它從右側屏幕的drawable文件夾自動顯示不同的圖像。

由於Android設備可以具有任意數量的屏幕尺寸,就像Windows和Web瀏覽器可以具有任意數量的屏幕尺寸一樣。 Android為讓你選擇基於密度圖像(例如, -hdpi )或屏幕大小(例如, -large ),但這些不映射到決議,也不應該。

正如CommonsWare所指出的那樣,針對這種情況的最佳選擇實際上是重新考慮布局結構。 使用RelativeLayouts和小部件,可能會獲得與您當前所獲得的結果相似甚至相似的結果。 如果您願意發布示例,我們可以為您提供建議的方式。

就是說,您的問題的答案是在運行時查詢設備的屏幕分辨率(請注意通知欄和標題欄占用的空間-除非您將其主題化為沒有標題欄)。 對於每種可能的屏幕分辨率,您將需要不同的圖像,並且隨着更多設備(尤其是平板電腦)的發布,您將不得不繼續為每張不同的圖像提供更多的圖像和自定義代碼。 您會看到為什么這不是理想的情況。

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth = metrics.widthPixels();
int screenHeight = metrics.heightPixels();

然后,您可以將其放入if-then-else塊中,確定分辨率,然后相應地設置圖像。 我不建議這樣做。

在顯示和分辨率方面,如果不擠壓/拉伸圖像或使用信箱,則無法將圖像調整為任何高寬比。 我知道這並不能真正回答您的問題,但是,如果您無法從操作系統中獲得可靠的屏幕尺寸信息,請嘗試選擇分辨率最高的圖像,然后裁剪分辨率較小的圖像。 只要確保邊界周圍沒有有趣的事物即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM