我如何指定必须将此 ImageView 显示得更小?

How can I specify that this ImageView have to be shown smaller?

我绝对是 Android 开发新手,我发现我的第一个应用程序存在以下问题。

我的问题与将图像占用的 space 更改为我的布局有关。

所以我遇到这样的情况:我没有将图像直接放入我的 XML 布局文件中,而是以编程方式将其放入我的 activity 代码中调用此方法:

ImageView difficultyContainerImageView1 = (ImageView) rootView.findViewById(R.id.difficultyContainer);

difficultyContainerImageView1.setImageDrawable(new BitmapDrawable(getResources(), ImgUtility.createRankingImg(context, 3)));

所以ImgUtility.createRankingImg(context, 3) return一个Bitmap对象被设置到我的布局的 ImgeView 具有 difficultyContainer 作为 ID。

它工作正常,图像显示在我的布局中,这个:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="fill_parent"
    android:layout_height="250dp"
    android:scaleType="fitXY" />

<TextView
    android:id="@android:id/text1"
    style="@style/pastaTitleTextStyle" />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            style="@style/HeaderTextStyle"
            android:text="Difficoltà:" />


        <ImageView
            android:id="@+id/difficultyContainer"
            android:layout_width="fill_parent"
            android:layout_height="55dp"
            android:scaleType="fitXY" />

    </LinearLayout>

</LinearLayout>

图像已正确显示到此 ImageView:

<ImageView
    android:id="@+id/difficultyContainer"
    android:layout_width="fill_parent"
    android:layout_height="55dp"
    android:scaleType="fitXY" />

唯一的问题是这样做图像水平占据了视图的所有space,这是我得到的(图像是最后一个包含厨师帽的图像):

这应该取决于我使用的事实 android:layout_width="fill_parent"ImageView 具有 id=difficultyContainer 必须水平占据其容器的所有空间(主要 LinearLayout)。

所以我想知道如何为此 ImageView.

设置百分比 width\height

指定百分比以使我的图像在我的应用程序中显示得更小的最佳方法是什么?最好的解决方案是什么?

您是想问如何以编程方式设置 imageView 的大小吗?

如果是这样使用:

ImageView imageView = findViewById(R.id.difficultyContainer);
imageView.getLayoutParams().width = 120;

高度相同,只需将宽度替换为高度即可。

'120' 的值以 dp 为单位,这意味着图像的大小将根据输出设备的屏幕大小进行调整,这意味着您不需要像在 [=19 中那样使用百分比=]

只需向您的 ImageView 添加内边距

<ImageView
        android:id="@+id/difficultyContainer"
        android:layout_width="fill_parent"
        android:layout_height="55dp"
        android:padding="8dp"
        android:scaleType="fitXY" />