I've tried all scaletypes, but all of them result in the image to be at the left corner of the imageview.
<ImageView
android:id="@+id/image"
android:scaleType="centerInside"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dip"
android:background="#0000"
android:src="@drawable/icon1" />
Try this code :
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/imgBusiness"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/back_detail" />
</LinearLayout>
For me android:gravity="center"
did the trick in the parent layout element.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/fullImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:contentDescription="@string/fullImageView"
android:layout_gravity="center" />
</LinearLayout>
This is code in xml of how to center an ImageView, I used "layout_centerHorizontal".
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerHorizontal="true"
>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img2"
/>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img1"
/>
</LinearLayout>
or this other example...
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img2"
/>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img1"
/>
</LinearLayout>
you can horizontal your image view in a linear layout using:
android:layout_gravity="center"
it will center your image to the parent element, if you just want to center horizontally you can use:
android:layout_gravity="center_horizontal"
Using "fill_parent" alone for the layout_width will do the trick:
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="6dip"
android:background="#0000"
android:src="@drawable/icon1" />
Try:
android:layout_height="wrap_content"
android:scaleType="fitStart"
on the image in the RelativeLayout
Give width of image as match_parent and height as required, say 300 dp.
<ImageView
android:id = "@+id/imgXYZ"
android:layout_width = "match_parent"
android:layout_height = "300dp"
android:src="@drawable/imageXYZ"
/>
Use this attribute: android:layout_centerHorizontal="true"
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
You can center the ImageView itself by using:
android:layout_centerVertical="true"
or android:layout_centerHorizontal="true"
For vertical or horizontal. Or to center inside the parent:
android:layout_centerInParent="true"
But it sounds like you are trying to center the actual source image inside the imageview itself, which I am not sure on.
This works for me when aligning image view in linearlayout.
<ImageView android:id="@android:id/empty"
android:src="@drawable/find_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:scaleType="center"
/>
Source: Stackoverflow.com