我有兩個佈局文件夾:佈局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. WinForms不同的DPI佈局
- 3. 具有不同高度的Android設備需要相同的佈局文件夾
- 4. 支持具有不同佈局的不同設備
- 5. 在所有設備上具有額外的相同佈局。怎麼樣?
- 6. 如何讓兩個不同的佈局具有相同的高度?
- 7. 設計具有不同佈局的RecyclerView
- 8. Android佈局,設置按鈕具有相同的大小
- 9. android - 不同設備的佈局幫助
- 10. 多個導軌叉具有不同的設計和佈局
- 11. Android發佈兩個具有相同包ID的應用程序
- 12. 具有相同列的兩個TableLayout
- 13. 兩個UIView具有相同的錨點
- 14. 如何使兩個具有自動佈局的標籤具有相同的文本大小?
- 15. Qt:兩個不同佈局中的相同構件
- 16. 調整具有相同佈局的所有工作表
- 17. WAMP RPC在不同的設備上具有相同的名稱
- 18. 合併兩個數據庫具有相同的設計(MySQL的)
- 19. 所有設備的Android單屏佈局
- 20. 支持在x軸和y軸上具有不同dpi的設備
- 21. 相同的關鍵字兩個廣告組不同的設備
- 22. 如何設置ImageView和兩個TextviewS具有相同的高度?
- 23. 爲什麼同一相對佈局中的兩個項目有不同的佈局?
- 24. 避免重寫具有相同佈局的活動的代碼
- 25. ImageView應該與右側的佈局具有相同的高度
- 26. 保存兩個不同的設備相同UIManagedDocument產生錯誤
- 27. Android佈局 - 具有相同位置的UI對象
- 28. 如何讓佈局具有相同的高度?
- 29. Android中具有相同layout_margin的複雜佈局
- 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