╔════════════════════════════════════════════════════════╗ ║ 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>
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.
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.
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>
You can use ImageView.ScaleType.MATRIX
and set image matrix using ImageView.setImageMatrix()
. Matrix
can be obtained using Matrix.setRectToRect()
method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With