帮助。我找到了ListView的高度,我不知道px或dpi吗?我需要dpi
final ListView actualListView = mPullRefreshListView.getRefreshableView();
actualListView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
height = actualListView.getHeight();
}
});
getheight返回高度,以像素为单位,下面是文档所说的内容。.
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;
}
或者如果您想在下面使用px,请使用。
将dp转换为像素:
public int dpToPx(int dp) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return px;
}
它返回像素。http://developer.android.com/reference/android/view/View.html#getHeight()要将像素转换为dpi,请使用以下公式px = dp *(dpi / 160)
使用此代码,您可以获得运行时显示器的宽度和高度
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int wwidth = displaymetrics.widthPixels;
[将dp转换为px并将px转换为dp的功能应如下所示(在Kotlin中:]
fun convertDpToPx(dp: Int): Int {
val metrics = Resources.getSystem().displayMetrics
return dp * (metrics.densityDpi / 160f).roundToInt()
}
fun convertPxToDp(px: Int): Int {
val metrics = Resources.getSystem().displayMetrics
return (px / (metrics.densityDpi / 160f)).roundToInt()
}