我的问题与在Android平台上针对不同的屏幕密度使用不同的布局有关。
假设我有四个main.xml文件(每个文件都在各自的文件夹中,以显示相应的屏幕密度:ldpi,mdpi,hdpi和xhdpi),并假设它们在开始时都是相同的。但是,假设我要摆脱ldpi布局的一些UI元素。当它试图在ldpi手机的ldpi布局中查找该视图时,如何在Java方面处理事情以避免空指针异常?我应该检查一下findviewbyid是否返回null并从那里继续吗?
我意识到您应该在应用程序中保持一致,但有时似乎只是摆脱一个方便但不必要的UI元素似乎更有意义。我喜欢在这些新手机上拥有更多的房地产,但是如果/当需要进行ldpi布局时,我宁愿不只是将所有内容都塞在里面,而是为了摆脱一些东西看起来更好,如果那有意义的话!
最佳答案
这是一个好问题。空检查可能是解决方案之一。
另一个解决方案是检查屏幕属性。看这个例子:
public static boolean isTabletPC(Context context) {
boolean isHoneycomb = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
boolean hasLargeScreen = (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
return isHoneycomb & hasLargeScreen;
}