gpt4 book ai didi

java - 如何使 ImageView 缩放以为其下方的控件留出空间?

转载 作者:行者123 更新时间:2023-12-02 00:41:58 26 4
gpt4 key购买 nike

所以我正在编写这个用于图像处理的应用程序,当用户从图库中选择图像后,我有一个选项页面,顶部有几个控件,中间是所选图像的预览。底部还有一个“开始”按钮,但如果图像足够高,该按钮就会被覆盖。

我考虑过将图像大小调整为有效的特定高度,但该高度会在不同设备上发生变化。理想情况下,我希望图像在控件和按钮之间占据尽可能多的空间,但我只是不知道如何做到这一点。我尝试使用垂直表格布局,但这没有什么区别。

在此图像中,模拟器窗口位于右侧。 The emulator is on the right.

这是我的 XML。有点乱,但这里是:

 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout" android:orientation="vertical"
android:layout_height="wrap_content" android:padding="10px"
android:layout_width="fill_parent">
<TextView android:textSize="18px" android:text="GIF Options"
android:id="@+id/textView3" android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<TableLayout android:id="@+id/tableLayout"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:stretchColumns="1">

<TableRow>
<TextView android:layout_height="wrap_content" android:text="FPS:"
android:id="@+id/TextView1" android:layout_width="wrap_content"
android:enabled="false" android:textSize="17px"></TextView>
<EditText android:text="20" android:inputType="numberDecimal"
android:id="@+id/EditTextFPS" android:numeric="decimal"
android:singleLine="true" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:digits="2"
android:width="50px"></EditText>
</TableRow>
<TableRow>
<TextView android:layout_height="wrap_content" android:text="Frames:"
android:id="@+id/TextView2" android:layout_width="wrap_content"
android:enabled="false" android:textSize="17px"></TextView>

<EditText android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="70"
android:inputType="numberDecimal" android:id="@+id/EditTextFrames"
android:numeric="decimal" android:singleLine="true" android:digits="2"></EditText>
</TableRow>
<TableRow>
<TextView android:layout_height="wrap_content" android:text="Saturation Boost: "
android:id="@+id/TextView2" android:layout_width="wrap_content"
android:enabled="false" android:textSize="17px"></TextView>

<SeekBar android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/seekBar1"
android:layout_alignParentLeft="true" android:max="10"></SeekBar>

</TableRow>
</TableLayout>

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/textView4"
android:layout_gravity="center" android:text="Chosen Image"
android:textSize="16px"></TextView>
<ImageView android:layout_width="wrap_content" android:src="@drawable/icon"
android:layout_gravity="center" android:id="@+id/optionspreview"
android:isScrollContainer="true" android:layout_height="fill_parent"></ImageView>

<Button android:layout_height="wrap_content"
android:layout_width="wrap_content" android:textSize="22px"
android:id="@+id/startbutton" android:text="Start!"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" android:layout_gravity="center"></Button>

</LinearLayout>

最佳答案

您可以使用RelativeLayout 来做到这一点。

一个过于简单的答案(因为我不知道你的布局)是将所有顶部控件放在布局中(例如layoutTop),将所有按钮控件放在布局中(layoutBottom)并将你的ImageView放在中间:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutWrapper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<LinearLayout
android:id="@+id/layoutTop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sparta!!!"
/>
</LinearLayout>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/layoutTop"
android:layout_above="@+id/layoutBottom"
android:src="@drawable/empty_star"
/>

<LinearLayout
android:id="@id/layoutBottom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sparta!!!"
/>
</LinearLayout>

</RelativeLayout>

这里的技巧是注意我如何为layoutBottom 创建id。当我声明实际布局时,“+”不是写的,而是第一次使用它时,即在 ImageView 中。

关于java - 如何使 ImageView 缩放以为其下方的控件留出空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com