Android getheight()px还是dpi?
帮助。我找到了ListView的高度,但我不知道px或dpi?我需要新闻部Android getheight()px还是dpi?,android,dpi,Android,Dpi,帮助。我找到了ListView的高度,但我不知道px或dpi?我需要新闻部 final ListView actualListView = mPullRefreshListView.getRefreshableView(); actualListView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() {
final ListView actualListView = mPullRefreshListView.getRefreshableView();
actualListView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
height = actualListView.getHeight();
}
});
它返回像素。
要将像素转换为dpi,请使用以下公式px=dp*(dpi/160)getheight返回像素高度,下面是docs的说明
public final int getHeight ()
自:API级别1
返回视图的高度。
返回
视图的高度,以像素为单位
您需要将px转换为dp,请使用以下方法将其转换为dp
将像素转换为dp:
public int pxToDp(int px) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return dp;
}
public int dpToPx(int dp) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return px;
}
或者,如果您想在px中使用它,请在下面使用
将dp转换为像素:
public int pxToDp(int px) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return dp;
}
public int dpToPx(int dp) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return px;
}
使用此代码可以获得运行时显示的宽度和高度
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int wwidth = displaymetrics.widthPixels;
将dp转换为px和px转换为dp的功能应如下所示(以kotlin为单位):
getHeight();始终以像素为单位返回高度,请检查此解决方案。只是未来的旁注。您需要的可能是
dp
或dip
——它们代表与密度无关的像素dpi
是每英寸点数,它测量屏幕的密度,而不是尺寸。请告诉我458 px高度的分辨率(以dpi为单位)好吗?如果在片段中使用,getContext()
可以产生NullPointerException
,而应该在onCreateView()中获取上下文,像这样Context-Context=view.getContext()代码>它是否仅适用于“xdpi”?例如,如果在mdpi设备中执行相同的代码,会发生什么?