Android:从代码计算视图大小(以像素为单位)

时间:2013-02-27 08:33:57

标签: android size pixels

我有ListView,其中的行有TextView。在我的代码中,我需要知道每行的height能够动态计算列表大小。这是每行中使用的布局:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/title_subgroup"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="5dp"
    android:textSize="18sp"
    android:textStyle="bold" />

这是我用来获取像素大小的代码:

    float sizeInDip = 10f;
    float sizeInSp = 18f;
    ROW_HEIGHT = (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sizeInDip, getResources().getDisplayMetrics())
            + context.getResources().getDisplayMetrics().scaledDensity * sizeInSp);

我得到的结果低于实际尺寸。使用此代码ROW_HEIGHT36,它应该类似于45。为什么会有这种差异?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以通过致电myView.getParent()并使用getWidth()getHeight()获取您需要的像素来获取观看次要内容。 该文档为此主题提供了更多信息 http://developer.android.com/reference/android/view/View.html