首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android如何以编程方式确定我的应用程序使用的XML布局?

Android如何以编程方式确定我的应用程序使用的XML布局?
EN

Stack Overflow用户
提问于 2014-03-25 12:22:05
回答 1查看 159关注 0票数 2

我希望能够记录下应用程序的屏幕大小,这样我就可以更容易地获得适合不同android屏幕大小的布局。我用以下代码实现了一个名为layoutSizeAcitivty的类:

代码语言:javascript
复制
    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方法的第一个活动中,我添加了以下内容:

代码语言:javascript
复制
private LayoutSizeActivity layoutSize;
layoutSize = new LayoutSizeActivity();
layoutSize.LayoutSize();

由于某种原因,我的LayoutSizeActivity.LayoutSize()返回一个空指针异常。有人知道为什么吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 12:50:14

代码语言:javascript
复制
private LayoutSizeActivity layoutSize;
layoutSize = new LayoutSizeActivity();

不能使用Activity创建new实例。永远不要尝试它,它永远不会起作用。

创建Activity的唯一方法是使用startActivity(...)或类似的方法(如startActivityForResult(...)等)。

活动类

活动指南

应用基础

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22634466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档