Android:如何使TableRow高度和ImageView高度等于ImageView scr drawable

时间:2011-05-24 19:48:20

标签: android android-layout

我有问题要使TableRow和ImageView高度等于ImageView scr可绘制高度。

有人可以帮我解决这个问题吗?

 <?xml version="1.0" encoding="utf-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" android:layout_height="match_parent"
        android:stretchColumns="*">
        <TableRow android:gravity="top" android:layout_weight="1" >
            <TextView android:text="Some text" 
                android:id="@+id/textView1" android:gravity="top" 
                android:layout_width="wrap_content" android:layout_height="wrap_content" />
        </TableRow>
        <TableRow android:gravity="top|center" >
            <ImageView android:id="@+id/imageView1"
                android:layout_height="wrap_content" android:src="@drawable/burger_king_image"
                android:layout_width="wrap_content" />
        </TableRow>
    </TableLayout>

1 个答案:

答案 0 :(得分:2)

我还没有对此进行过测试,但看起来ImageView有一个选项setAdjustViewBounds可以完成你需要的所有工作:

    ImageView imageview = (ImageView) findViewById(R.id.imageView1);
    imageView.setAdjustViewBounds(true);

如果这还不够,你可以用这样的东西得到drawable的高度:

    Drawable image = getResources().getDrawable(R.drawable.burger_king_image);
    int height = image.getIntrinsicHeight();

然后您可以像这样设置ImageView的大小(假设内容视图已经设置为此资源):

    ImageView imageview = (ImageView) findViewById(R.id.imageView1);
    imageView.setMaxHeight(height);
    imageView.setAdjustViewBounds(true);

希望这有帮助。