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

时间:2016-09-04 14:31:21

标签: java android android-layout android-imageview android-bitmap

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

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

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

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

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

所以 ImgUtility.createRankingImg(context,3)会返回 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" />

唯一的问题是以这种方式水平占据视图的所有空间,这是我获得的(图像是包含厨师帽的最后一个):

enter image description here

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

所以我想知道如何为 ImageView 设置百分比宽度\高度。

指定百分比的最佳方法是什么,以便我的图片在我的应用中显示得更小?这样做的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:1)

您是否正在尝试询问如何以编程方式设置imageView的大小?

若是,请使用:

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

高度相同,只需用高度替换宽度。

这个值为&#39; 120&#39;在dp中,这意味着图像的大小将根据输出设备的屏幕大小进行调整,这意味着您不需要像在html / css中那样使用百分比

答案 1 :(得分:0)

只需在ImageView中添加填充

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