Android ImageView拉长了

时间:2013-03-16 19:07:41

标签: android android-layout android-linearlayout android-imageview

我尝试将ImageViews添加到水平LinearLayout。它们应该占用相同的空间,所以我将这些ImageView的重量设置为1.它们按照我的预期布局,但是图像得到了拉伸。我将scapeType设置为居中。 根据中心比例类型,他们不应该拉伸,但他们是,这是我的问题。 我的ImageView:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="3"
    android:scaleType="centerInside"
    android:adjustViewBounds="true"/>

这是我添加它们的地方:

    for (int i = 0; i < badges.size() && i < 4; i++) {
                Badge currentBadge = badges.get(i);
                ImageView view = (ImageView) inflater.inflate(R.layout.listitem_badge,
                        mBadgesContainer, false);
                view.setBackgroundResource(R.drawable.dummy_badge_medic);
                mBadgesContainer.addView(view);
            }

LinearLayout:

   <LinearLayout
    android:id="@+id/container_badges"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/title_badges"
    android:orientation="horizontal" />

2 个答案:

答案 0 :(得分:2)

因为您要设置ImageView背景,并且drawable

中的图片可能很小

尝试设置src view.setImageResource(R.drawable.dummy_badge_medic);

答案 1 :(得分:0)

属性android:scaleType="centerInside"仅适用于不适用于背景的图像资源。 所以尝试MAC(https://stackoverflow.com/users/1289716/mac)给出的代码。