android XML scale imageview down(无代码)

时间:2014-10-02 22:43:30

标签: android xml

我遇到了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)

但这会在图标和文字之间产生差距,如下所示: enter image description here

现在我真的不知道如何解决这个问题。我也尝试过带有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;

1 个答案:

答案 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();