Reputation: 6892
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" />
Upvotes: 62
Views: 255093
Reputation: 4111
According @charles
answer you must add the following :
android:layout_width="fill_parent"
android:layout_height="wrap_content"
And this one :
android:layout_gravity="center_vertical"
Upvotes: 0
Reputation: 11
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"
/>
Upvotes: 1
Reputation: 154
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"
Upvotes: 2
Reputation: 861
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
Upvotes: 86
Reputation: 1689
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>
Upvotes: 8
Reputation: 189454
Your ImageView has the attribute wrap_content
. I would think that the Image is centered inside the imageview but the imageview itself is not centered in the parentview. If you have only the imageview on the screen try match_parent
instead of wrap_content
. If you have more then one view in the layout you have to center the imageview.
Upvotes: 55
Reputation: 4764
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>
Upvotes: 0
Reputation: 178
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>
Upvotes: 2
Reputation: 1053
Try:
android:layout_height="wrap_content"
android:scaleType="fitStart"
on the image in the RelativeLayout
Upvotes: 2
Reputation: 981
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"
/>
Upvotes: 14
Reputation: 2289
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" />
Upvotes: 3
Reputation: 1194
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.
Upvotes: 37