在布局中初始化ImageView位置

时间:2018-10-12 18:10:23

标签: android android-layout android-imageview android-view

我有一个RelativeLayout,它带有一个名为ZoomieView的自定义ImageView,它使我可以捏住图像上的图像。我想允许图像扩大屏幕的整个尺寸,因此我将ZoomieView的宽度和高度设置为match_parent。现在,我还想向RelativeLayout添加页眉和页脚,以使ZoomieView位于页眉和页脚之间,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorBgBlackTintDarkest"
    android:id="@+id/full_displayer_master_container"
    android:orientation="vertical">

    <!-- Submission header -->
    <LinearLayout
        android:id="@+id/big_display_title_container"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentTop="true"
        android:orientation="vertical">
    </LinearLayout>

        <!-- Image zoom view-->
    <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"/>

    <!-- footer -->
    <LinearLayout
        android:id="@+id/full_display_snack_bar_container"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:background="@drawable/snack_bar_selector"
        android:clickable="true"
        android:orientation="horizontal">
    </LinearLayout>

</RelativeLayout>

如果我的图像较小,则由于图像足够小而无法覆盖页眉/页脚,因此效果很好,但是当我尝试加载较大的图像时,由于我的身高/宽度,页眉和页脚被遮盖了是match_parent。

我需要高度/宽度保持match_parent,但我也不希望在加载视图时覆盖页眉/页脚(如果以后用户放大图片时覆盖了页眉/页脚,那就很好了,虽然)。

有没有一种方法可以调整图像的大小,以使视图加载时ZoomieView位于页眉和页脚之间的中心,但是当我放大到ZoomieView时可以遮盖页眉/页脚图片?

android:layout_below="header" android:layout_above="footer"添加到我的ZoomieView中是行不通的,因为它不允许ZoomieView放大时扩大整个屏幕尺寸。

这就是我现在所拥有的(不好的):

enter image description here

这是我希望加载视图的方式(更好): enter image description here

2 个答案:

答案 0 :(得分:0)

更改布局并使用android:layout_weight =“ 0”属性

尝试此希望它将起作用...!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBgBlackTintDarkest"
android:id="@+id/full_displayer_master_container"
android:orientation="vertical">

<!-- Submission header -->
<LinearLayout
    android:id="@+id/big_display_title_container"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_weight="0"
    android:orientation="vertical">
</LinearLayout>

    <!-- Image zoom view-->
<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_weight="1"
    android:layout_gravity="center"/>

<!-- footer -->
<LinearLayout
    android:id="@+id/full_display_snack_bar_container"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:background="@drawable/snack_bar_selector"
    android:clickable="true"
    android:layout_weight="2"
    android:orientation="horizontal">
</LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

尝试一下...可能会对您有所帮助。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBgBlackTintDarkest"
android:id="@+id/full_displayer_master_container"
android:orientation="vertical">

<!-- Submission header -->
<LinearLayout
    android:id="@+id/big_display_title_container"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:orientation="vertical">
</LinearLayout>

    <!-- Image zoom view-->
<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_above="@+id/full_display_snack_bar_container" //add this line
    android:layout_below="@+id/big_display_title_container" //add this line
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"/>

<!-- footer -->
<LinearLayout
    android:id="@+id/full_display_snack_bar_container"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:background="@drawable/snack_bar_selector"
    android:clickable="true"
    android:orientation="horizontal">
</LinearLayout>