我有兩個佈局文件夾:佈局sw800dp和佈局sw600dp所以我的應用程序使用佈局sw600dp兩個設備,三星Galaxy Tab 7和的Nexus 7,它使Nexus 7的字體和樣式更大!我如何區分這兩個設備的佈局? 由於提前Differerentiate佈局具有相同的DPI兩個設備
回答
解決:我已經做了兩個佈局文件夾佈局tvdpi爲Nexus 7和佈局MDPI爲三星Galaxy Tab 7
可以從下面的代碼
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float widthInInches = metrics.widthPixels/metrics.xdpi;
float heightInInches = metrics.heightPixels/metrics.ydpi;
double sizeInInches = Math.sqrt(Math.pow(widthInInches, 2)
+ Math.pow(heightInInches, 2));
這裏sizeInInches檢查10和7英寸表屏幕尺寸爲您提供的表的適當英寸採取在緩衝液爲0.5英寸,並給根據條件它如下所示。
boolean is7inchTablet = sizeInInches >= 6.5 && sizeInInches <= 7.5;
只要你需要檢查它,只需檢查如下。
if(is7inchTablet){
// do whatever for the 7-inch tablet
}else{
// do whatever for the 10-inch tablet
}
+1謝謝你的快速回答。我知道我可以像你提到的那樣獲得設備的英寸數,但是爲這樣一個完整的應用程序的每個佈局創造條件需要很長的時間!你有更快的方法來解決這個問題嗎? – 2013-05-13 05:18:58
只需要在一個基本活動或任何Util類中編寫此代碼並傳遞上下文。爲什麼你正在考慮在每個班級編寫這些代碼?我只在一個Util類中使用過,並檢查條件。讓我編輯一下.... – 2013-05-13 05:21:24
如果我明白你的想法,每當我設置佈局時,我應該檢查此標誌?所以我應該檢查這個爲我的應用程序中的每個片段和類? – 2013-05-13 05:27:27
- 1. Android DPI獨立於具有相同分辨率的設備
- 2. 有可能有兩個設備具有相同的UUID?
- 3. 相同的佈局大型,XLARGE設備
- 4. WinForms不同的DPI佈局
- 5. 具有不同高度的Android設備需要相同的佈局文件夾
- 6. 支持具有不同佈局的不同設備
- 7. 在所有設備上具有額外的相同佈局。怎麼樣?
- 8. 如何讓兩個不同的佈局具有相同的高度?
- 9. 在Android中具有相同xml屬性的兩個ImageView相對佈局
- 10. 設計具有不同佈局的RecyclerView
- 11. Android佈局,設置按鈕具有相同的大小
- 12. 不同的圖標大小在不同的設備上具有相同的分辨率和dpi
- 13. 爲什麼Android Studio爲兩個相同的設備顯示不同的DPI設置?
- 14. 如何在兩個佈局中使用具有相同編號的viewswitcher
- 15. 是否可以使用具有相同佈局的兩個活動
- 16. 佈局720個* 1280設備
- 17. 具有相同變量值的多個自動佈局約束
- 18. Android的相對佈局和不同的屏幕尺寸/設備
- 19. 不同設備的android佈局
- 20. android - 不同設備的佈局幫助
- 21. 適應所有具有自動佈局的設備
- 22. Android:針對不同屏幕尺寸設計,但具有相同的DPI
- 23. Spring MVC&Rest:具有相同「內容」的不同「佈局」?
- 24. Viewpager頁面具有不同的佈局,但片段類相同
- 25. 多個導軌叉具有不同的設計和佈局
- 26. Android發佈兩個具有相同包ID的應用程序
- 27. 兩個UIView具有相同的錨點
- 28. 具有相同列的兩個TableLayout
- 29. 兩個端口具有相同的PID
- 30. 如何使兩個具有自動佈局的標籤具有相同的文本大小?
使水庫2個文件夾/ layout.nexus 7佈局large- tvdpi,三星10.1 layout-xlarge-mdpi。 – Hemant 2013-05-13 05:14:51
@Hemant:我會嘗試你的評論。 tx – 2013-05-13 05:28:21