Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Positioning an image inside an ImageView with gravity: top

      ╔════════════════════════════════════════════════════════╗       ║               Linear Layout  (Center)                  ║       ║    ╔══════════════════════════════════════════════╗    ║          ║    ║ ImageView    ╔══════════════╗                ║    ║       ║    ║              ║              ║    (Center)    ║    ║       ║    ║              ║ Actual image ║                ║    ║       ║    ║              ║              ║                ║    ║       ║    ║              ║  (Center)    ║                ║    ║       ║    ║              ║              ║                ║    ║       ║    ║              ╚══════════════╝                ║    ║       ║    ╚══════════════════════════════════════════════╝    ║        ║                                                        ║       ╚════════════════════════════════════════════════════════╝ 

And I want to do this:

      ╔════════════════════════════════════════════════════════╗       ║               Linear Layout  (Center)                  ║       ║    ╔══════════════════════════════════════════════╗    ║          ║    ║ ImageView    ║              ║                ║    ║       ║    ║              ║              ║    (Center)    ║    ║       ║    ║              ║ Actual image ║                ║    ║       ║    ║              ║              ║                ║    ║       ║    ║              ║  (Top)       ║                ║    ║       ║    ║              ║              ║                ║    ║       ║    ║              ╚══════════════╝                ║    ║       ║    ╚══════════════════════════════════════════════╝    ║        ║                                                        ║       ╚════════════════════════════════════════════════════════╝ 

Note that : imageview has gravity center with Linear Layout I want the image in the imageview has gravity top, i try to set gravity:top, but nothing change. Help me

Edit: this is my 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> 
like image 410
Nam Vu Avatar asked Apr 28 '11 12:04

Nam Vu


People also ask

What is gravity layout?

The android:layout_gravity is an attribute that sets the gravity of the View or Layout in its parent. The android:layout_gravity is used to control the gravity of an individual view in a container. It is the outside gravity of the View. It specifies the direction in which the View should touch it's parent's border.

What is SRC in ImageView?

The background will stretch according to the length given by the ImageView component, and SRC will hold the size of the original image without stretching. SRC is the picture content (foreground), BG is the background, can be used at the same time.


2 Answers

Set the scaleType to fitStart in your XML:

<ImageView     android:id="@+id/ivMap"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:scaleType="fitStart" > </ImageView> 
like image 190
Terel Avatar answered Sep 22 '22 09:09

Terel


You can use ImageView.ScaleType.MATRIX and set image matrix using ImageView.setImageMatrix(). Matrix can be obtained using Matrix.setRectToRect() method.

like image 22
Michael Avatar answered Sep 21 '22 09:09

Michael