我有问题要使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>
答案 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);
希望这有帮助。