我有一个ImageView
夹在两个LinearLayout
之间。 ImageView
具有缩放功能,可让我放大和缩小图像-这意味着图像可以放大到整个屏幕尺寸(match_parent)。
如果我加载非常高(高度)的图像,则该图像会与两个LinearLayout
重叠,当在屏幕上到达时,这不正确,但是如果用户决定放大则可以后来。有没有一种方法可以在初始化时“限制” ImageView的高度,但也可以使其增大整个屏幕尺寸?
以下是一个“高”图像被错误加载的示例,因为它覆盖了顶部LinearLayout
文本:
这就是我希望图像被加载的能力,并且能够增长到前一张图像的大小:
这是我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBgBlackTintDarker"
android:orientation="vertical"
android:paddingTop="20dp">
<!-- Title at the top -->
<LinearLayout
android:id="@+id/big_display_title_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="vertical">
<!-- Title stuff here-->
</LinearLayout>
<!-- Middle custom ImageView with ability to zoom-->
<com.sometimestwo.moxie.ZoomieView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/full_displayer_image_zoomie_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"/>
<!-- Bottom toolbar-->
<LinearLayout
android:id="@+id/big_display_snack_bar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/transparent"
android:orientation="horizontal">
<!-- Bottom toolbar stuff-->
</LinearLayout>
</RelativeLayout>
编辑:这是GIF来说明我正在经历的事情:
图像可以根据需要进行放大和缩小,但是我需要在初始化时将图像放置在标题和底部工具栏之间,以便不覆盖任何内容(直到用户决定缩放)。
答案 0 :(得分:1)
您应将ImageView
夹在父LinearLayout
的两个RelativeLayout
之间。如下更改代码:
<!-- Middle custom ImageView with ability to zoom-->
<com.sometimestwo.moxie.ZoomieView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/full_displayer_image_zoomie_view"
android:layout_below="@id/big_display_title_container"
android:layout_above="@id/big_display_snack_bar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
答案 1 :(得分:0)
您可以尝试使用ConstraintLayout。
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="16dp">
<LinearLayout
android:id="@+id/big_display_title_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="vertical">
<!-- Title stuff here-->
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/big_display_snack_bar_container"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/big_display_title_container"/>
<LinearLayout
android:id="@+id/big_display_snack_bar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/transparent"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent">
</LinearLayout>
</android.support.constraint.ConstraintLayout>