获取动态添加的UI元素的计算宽度

时间:2014-02-04 08:30:12

标签: android

在我的Android应用中,我尝试在ButtonClick上发布一些数据。

我创建了单独的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <TableLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="3" >

            <TableRow>
                <TextView
                    android:id="@+id/TV1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="@string/strTV1" />
            </TableRow>
    </TableLayout>

    <ImageView
            android:id="@+id/overallPortraitIV"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" 
            android:contentDescription="@string/strPortrait"/>
</LinearLayout>

我的onClick事件:

View view = getLayoutInflater().inflate(R.layout.overall_rfid_layout, null);
        overallResultTab.addView(view);
ImageView portraitImage=(ImageView)view.findViewById(R.id.overallRfidPortraitIV);
        decodedByte = scaleToFitWidth(decodedByte, portraitImage.getMeasuredWidth());
        portraitImage.setImageBitmap(decodedByte);

如您所见,我的ImageView宽度设置为0,但它有权重,因此,实际宽度不应为0.那么如何获得像素数量,实际上是ImageView?< / p>

如代码所示,我尝试getMeasuredWidthgetWidth,但他们返回0;

1 个答案:

答案 0 :(得分:0)

由于您在将任何图像设置到视图之前测量 ImageView 的宽度,这就是 getMeasuredWidth 返回0的原因。在 XML 中,您将layout_width设置为“0dip”所以在将任何图像设置为此ImageView之前,它的宽度将保持为“0dip”。