我希望能够记录下应用程序的屏幕大小,这样我就可以更容易地获得适合不同android屏幕大小的布局。我用以下代码实现了一个名为layoutSizeAcitivty的类:
public class LayoutSizeActivity extends SherlockActivity{
public void LayoutSize(){
//Determine screen size
if ((getResources().getConfiguration().screenLayout &Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE)
{
Log.d("Screen Size: ", "LARGE");
}
else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
Log.d("Screen Size: ", "NORMAL");
}
else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
Log.d("Screen Size: ", "SMALL");
}
else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
Log.d("Screen Size: ", "XLARGE");
}
else {
Log.d("Screen Size: ","UNKNOWN_CATEGORY_SCREEN_SIZE");
}
//Determine density
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int density = metrics.densityDpi;
if (density==DisplayMetrics.DENSITY_HIGH) {
Log.d("Screen Density: ","HIGH");
}
else if (density==DisplayMetrics.DENSITY_MEDIUM) {
Log.d("Screen Density: ","MEDIUM");
}
else if (density==DisplayMetrics.DENSITY_LOW) {
Log.d("Screen Density: ","LOW");
}
else if (density==DisplayMetrics.DENSITY_XHIGH) {
Log.d("Screen Density: ","XHIGH");
}
else if (density==DisplayMetrics.DENSITY_XXHIGH) {
Log.d("Screen Density: ","XXHIGH");
}
else {
Log.d("Screen Density: ","UNKNOWN_CATEGORY");
}
}
}然后,在onCreate方法的第一个活动中,我添加了以下内容:
private LayoutSizeActivity layoutSize;
layoutSize = new LayoutSizeActivity();
layoutSize.LayoutSize();由于某种原因,我的LayoutSizeActivity.LayoutSize()返回一个空指针异常。有人知道为什么吗?谢谢
发布于 2014-03-25 12:50:14
private LayoutSizeActivity layoutSize;
layoutSize = new LayoutSizeActivity();不能使用Activity创建new实例。永远不要尝试它,它永远不会起作用。
创建Activity的唯一方法是使用startActivity(...)或类似的方法(如startActivityForResult(...)等)。
活动类
活动指南
应用基础
https://stackoverflow.com/questions/22634466
复制相似问题