我遇到了ImageView的问题。我希望TextView的左侧是带有图标的ImageView,但只有TextView的高度。所以它应该按比例缩小,因为图像更大。
这是我的代码:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dip" >
<LinearLayout
android:id="@+id/icon_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/name"
android:layout_alignTop="@+id/name" >
<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:scaleType="fitStart"
android:src="@drawable/m1" />
</LinearLayout>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/icon_container"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
(也可以不使用LinearLayout)
但这会在图标和文字之间产生差距,如下所示:
现在我真的不知道如何解决这个问题。我也尝试过带有Icon和TextView的LinearLayour,但这也不起作用。
修改
我找不到没有代码的解决方案,但是使用代码,我打电话给:
ImageView icon = (ImageView)vi.findViewById(R.id.icon);
TextView name = (TextView)vi.findViewById(R.id.name);
name.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED);
name.setText("Test 1");
int height = name.getMeasuredHeight();
icon.getLayoutParams().height = height;
icon.getLayoutParams().width = height;
答案 0 :(得分:1)
您可以尝试在TextView上使用drawableLeft,这会在TextView的左侧放置一个drawable。我认为它可能会随着TextView的高度而扩展,如果没有,你应该能够获得TextView的高度并自己缩放它。
Programmatically set left drawable in a TextView
修改的 以下是获取视图高度的一些链接
How to retrieve the dimensions of a view?
getHeight returns 0 for all Android UI objects
Android TextView has height and width of 0
最有用的可能是最后一个问题
“在绘制视图之前查找视图的宽度和高度:
首次通话措施“
view.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED)
“现在你可以使用getMeasuredHeight使用getMeasuredWidth和height获得宽度”
int width = view.getMeasuredWidth();
int height = view.getMeasuredHeight();