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