我有两个布局文件夹:布局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