java - 我怎样才能指定这个 ImageView 必须显示得更小?

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

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

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

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

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" />

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

enter image description here

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

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

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

最佳答案

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

如果是这样使用:

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

高度相同,只是将宽度替换为高度。

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

关于java - 我怎样才能指定这个 ImageView 必须显示得更小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318000/

相关文章:

java - AndEngine 的 GenericPool 处理 6 个 Sprite

java - HttpServer 不是 API 的 VSCode Java 访问限制错误

javascript - Pebble JS SDK : how to catch & react on an external app notification

android - 处理略有不同的纵向和横向布局的单个 Android 布局 xml 文件?

android - 手机和平板电脑上的 GUI 不同,但应用程序相同

java - 如何在对话框可见时更改对话框的模式

java - BufferedReader 一段时间后不再缓冲?

java - 为什么我的蓝牙应用程序崩溃

java - 返回第一个 View / Root View 的内容

Android 4.4 从 CardView 移除阴影