╔════════════════════════════════════════════════════════╗
║ Linear Layout (Center) ║
║ ╔══════════════════════════════════════════════╗ ║
║ ║ ImageView ╔══════════════╗ ║ ║
║ ║ ║ ║ (Center) ║ ║
║ ║ ║ Actual image ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ║ (Center) ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ╚══════════════╝ ║ ║
║ ╚══════════════════════════════════════════════╝ ║
║ ║
╚════════════════════════════════════════════════════════╝
Et je veux faire ça:
╔════════════════════════════════════════════════════════╗
║ Linear Layout (Center) ║
║ ╔══════════════════════════════════════════════╗ ║
║ ║ ImageView ║ ║ ║ ║
║ ║ ║ ║ (Center) ║ ║
║ ║ ║ Actual image ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ║ (Top) ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ╚══════════════╝ ║ ║
║ ╚══════════════════════════════════════════════╝ ║
║ ║
╚════════════════════════════════════════════════════════╝
Notez que: imageview a un centre de gravité avec une disposition linéaire Je veux que l'image dans l'imageview ait un sommet de gravité, j'essaie de définir la gravité: haut, mais rien ne change. Aidez moi
Edit: c'est mon xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical" Android:layout_width="fill_parent"
Android:layout_height="fill_parent" Android:background="@color/all_white">
<LinearLayout Android:id="@+id/title_bar" style="@style/TitleBar">
<TextView Android:layout_width="wrap_content"
Android:id="@+id/tv_printweb"
Android:singleLine="true"
Android:ellipsize="end"
style="@style/ScreenTitleText" />
</LinearLayout>
<RelativeLayout Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_below="@+id/tv_web_filename"
Android:layout_above="@+id/tv_web_page_num"
Android:layout_weight="1"
Android:background="@color/background">
<LinearLayout Android:id="@+id/ln_web_pre"
Android:layout_width="30dp"
Android:layout_height="fill_parent"
Android:layout_alignParentLeft="true"
Android:gravity="center">
<Button Android:id="@+id/btn_web_pre"
Android:layout_width="40dp"
Android:layout_height="120dp"
Android:background="@drawable/bt_left"
/>
</LinearLayout>
<LinearLayout Android:id="@+id/ln_web_zoomview"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@color/all_white"
Android:orientation="vertical"
Android:gravity="center"
Android:layout_centerInParent="true">
<ImageView Android:id="@+id/web_zoomview"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@color/all_white"
Android:layout_gravity="top"
/>
</LinearLayout>
<LinearLayout Android:id="@+id/llCircle"
Android:layout_height="fill_parent"
Android:layout_width="fill_parent"
Android:layout_marginRight="40dp"
Android:layout_marginLeft="40dp"
Android:layout_marginBottom="25dp"
Android:layout_marginTop="25dp">
</LinearLayout>
<LinearLayout Android:id="@+id/ln_web_next"
Android:layout_width="30dp"
Android:layout_height="fill_parent"
Android:layout_alignParentRight="true"
Android:gravity="center">
<Button Android:id="@+id/btn_web_next"
Android:layout_width="40dp"
Android:layout_height="120dp"
Android:background="@drawable/bt_right_1"
/>
</LinearLayout>
<RelativeLayout Android:id="@+id/pagebar_web_top"
Android:layout_width="fill_parent"
Android:layout_height="30dp"
Android:layout_alignParentTop="true"
Android:gravity="center_vertical"
Android:paddingLeft="10dip"
Android:paddingRight="10dip">
<TextView Android:id="@+id/tv_web_page_size"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:gravity="center"
Android:text="Paper Size"
Android:textColor="@color/all_black"
Android:textStyle="bold"
Android:background="@drawable/paper_border" />
</RelativeLayout>
<RelativeLayout Android:id="@+id/web_pagebar"
Android:layout_width="fill_parent"
Android:layout_height="50dp"
Android:layout_alignParentBottom="true"
Android:gravity="left"
Android:paddingLeft="10dip"
Android:paddingRight="10dip">
<TextView Android:id="@+id/tv_page_num"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerVertical="true"
Android:gravity="center"
Android:text="1/1"
Android:textColor="@color/all_black"
Android:textStyle="bold"
Android:background="@drawable/paper_border" />
<Button Android:id="@+id/btn_web_orientation"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:layout_alignParentRight="true"
Android:background="@drawable/rotate_l" />
</RelativeLayout>
</RelativeLayout>
<LinearLayout Android:gravity="right|center_horizontal"
Android:id="@+id/toolbar"
style="@style/FunctionBar">
<Button Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/btn_web_print"
style="@style/FunctionButton"
Android:text="@string/str_print" />
</LinearLayout>
</LinearLayout>
Définissez scaleType
sur fitStart
dans votre XML:
<ImageView
Android:id="@+id/ivMap"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:scaleType="fitStart" >
</ImageView>
Veuillez vérifier la réponse de Terel, qui serait la bonne réponse.
Selon ce qui se trouve d'autre dans la mise en page, une solution pourrait être d'utiliser une autre mise en page (c'est-à-dire une FrameLayout
qui est plutôt légère) à la place de la ImageView
, et d'avoir la ImageView
à la place de l'image réelle, avec son Android:layout_gravity="top"
.
Vous pouvez utiliser ImageView.ScaleType.MATRIX
Et définir la matrice d'image à l'aide de ImageView.setImageMatrix()
. Matrix
peut être obtenu en utilisant la méthode Matrix.setRectToRect()
.
Ne serait-il pas plus facile d'utiliser un RelativeLayout
? Avec Android:layout_alignParentTop="true"
et Android:layout_centerHorizontal="true"
vous pouvez obtenir l'effet souhaité.