Android 设备选项卡组';s制表符高度(以像素为单位)取决于设备屏幕大小

Android 设备选项卡组';s制表符高度(以像素为单位)取决于设备屏幕大小,android,height,pixel,Android,Height,Pixel,我需要在我的应用程序中以像素为单位获取标签的高度(如图所示)。 我需要一些信息,这将帮助我知道什么是从屏幕大小取决于标签的高度。有人能帮我吗 提前谢谢 说实话,我不需要代码中标签的大小,我认为每个尺寸相同的设备都有相同的标签高度,所以我想知道屏幕的哪个部分会占用我的标签 e、 g.我有1080 X 720像素的设备,我的标签将占1/10,这意味着标签的高度将是108像素我在前面的评论中想说的是,这里有许多流行的解决方案可以获得任何android视图的高度和宽度。 我现在已经测试了这段代码,它运行

我需要在我的应用程序中以像素为单位获取标签的高度(如图所示)。
我需要一些信息,这将帮助我知道什么是从屏幕大小取决于标签的高度。有人能帮我吗

提前谢谢

说实话,我不需要代码中标签的大小,我认为每个尺寸相同的设备都有相同的标签高度,所以我想知道屏幕的哪个部分会占用我的标签


e、 g.我有1080 X 720像素的设备,我的标签将占1/10,这意味着标签的高度将是108像素

我在前面的评论中想说的是,这里有许多流行的解决方案可以获得任何android视图的高度和宽度。 我现在已经测试了这段代码,它运行良好。试试这个:

final RelativeLayout topLayout  = (RelativeLayout) findViewById(R.id.topRelLayout);
        ViewTreeObserver viewTreeObserver = topLayout.getViewTreeObserver();
        if (viewTreeObserver.isAlive()) {
          viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                if(Integer.valueOf(android.os.Build.VERSION.SDK_INT) >= 16)
                topLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                else
                topLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
             int  viewWidth = tabs.getWidth();
              int viewHeight = tabs.getHeight();

              Toast.makeText(HomeScreenActivity.this, "height = "  + viewHeight + " width = " + viewWidth , 2000).show();
            }
          });
        }
其中topRelLayout是xml文件根布局的id,tabs是对选项卡视图的引用

即使遵循简单的代码也可以很好地工作

tabs.post(new Runnable() {
            @Override
            public void run() {
                int w = tabs.getMeasuredWidth();
                int h = tabs.getMeasuredHeight();
                Toast.makeText(HomeScreenActivity.this, "height = "  + h + " width = " + w , 2000).show();
            }
        });
使用这两种解决方案中的任何一种,您都可以获得任意屏幕大小的任意视图的高度/宽度

编辑:

在阅读了您编辑的问题之后,我假设您需要选项卡小部件占用屏幕的百分比。 我知道唯一可以实施的解决方案是:

WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
         final   Display display = wm.getDefaultDisplay();

            tabs.post(new Runnable() {
                @Override
                public void run() {
                    int h = tabs.getMeasuredHeight();
                    int screenHeight = 0;
                    if(Integer.valueOf(android.os.Build.VERSION.SDK_INT) >= 13)
                    {
                        Point point = new Point();
                     display.getSize(point);
                     screenHeight = point.y;
                    }
                    else
                        screenHeight = display.getHeight();
                    double tabPart = (((double)h/(double)screenHeight) * 100); 
                    Toast.makeText(HomeScreenActivity.this, "height = "  + screenHeight + " tabPart = " + tabPart  + " %", 2000).show();


                }
            });

你有没有尝试过这些解决方案:我需要一些信息来帮助我从屏幕上知道标签的高度取决于尺寸。非常感谢你的回答,我已经编辑了我的问题,你能检查一下吗?