0

我尝试将 ImageViews 添加到水平 LinearLayout。它们应该占据相同的空间,所以我将这些 ImageView 的权重设置为 1。它们按照我的预期进行了布局,但是图像被拉伸了。我将 scapeType 设置为中心。根据 center scaletype,它们不应该被拉伸,但它们是,这是我的问题。我的图像视图:

<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
    android:id="@+id/container_badges"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/title_badges"
    android:orientation="horizontal" />
4

2 回答 2

2

因为您正在设置背景ImageView并且您可能有小图像drawable

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

于 2013-03-16T19:13:18.097 回答
0

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

于 2013-03-16T19:29:04.843 回答