Android:以图片为中心
我有一个线性布局和图像…
<?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"> <ImageView android:layout_width="wrap_content" android:id="@+id/imageView1" android:src="@drawable/icon" android:layout_height="wrap_content" android:scaleType="center"></ImageView> </LinearLayout> 我如何dynamic调整图像的中心位置,使其在所有设备的屏幕中间出现?
 在LinearLayout ,使用: android:layout_gravity="center" 。 
 在RelativeLayout ,使用: android:layout_centerInParent="true" 。 
 如果您正在使用LinearLayout ,请使用gravity属性: 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <ImageView android:layout_width="wrap_content" android:id="@+id/imageView1" android:src="@drawable/icon" android:layout_height="wrap_content" android:scaleType="centerInside" /> </LinearLayout> 
 如果您使用的是RelativeLayout ,则可以使用android:layout_centerInParent ,如下所示: 
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon" android:scaleType="centerInside" android:layout_centerInParent="true" /> </RelativeLayout> 
 从技术上讲,上面的两个答案都是正确的,但是由于您将ImageView设置为fill_parent而不是wrap_content ,因此其中的图像不居中,但ImageView本身是。 
给你的ImageView的属性:
 android:scaleType="centerInside" android:gravity="center" 
 如果图像超出ImageView的大小,scaleType实际上只在这种情况下是必需的。 您可能还需要不同的缩放types。 总之,在这种情况下, android:gravity就是你要找的东西,但是如果你的ImageView被设置为wrap_content ,那么你应该把ImageView的gravity( android:layout_gravity )设置为居中。 
只需将其添加到您的ImageView。
 android:layout_gravity="center" 
这里有两种方法可以在LinearLayout中垂直和水平放置图像(或图像)。
(1)在ImageView中使用android:layout_gravity =“center”属性
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" layout_height="wrap_content" android:src="@drawable/icon" android:layout_gravity="center"/> </LinearLayout> 
这是如何工作的:ImageView中的android:layout_gravity =“center”属性本身 (即图像) 垂直和水平地相对于其父(LinearLayout)居中。
– 要么 –
(2)或者,您可以在LinearLayout中使用android:gravity =“center”属性,并省略ImageView中的android:layout_gravity =“center”属性:
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" layout_height="wrap_content" android:src="@drawable/icon" android:layout_gravity="center"/> </LinearLayout> 
这是如何工作的:LinearLayout中的android:gravity =“center”属性垂直和水平居中它的子/子 (在这种情况下,它是图像)。
另一种方法。 (在相对testing,但我认为在线性也将起作用)
  android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:adjustViewBounds="true" android:gravity="center" 
如果您使用Eclipse,则可以在* .xml文件处于活动状态时selectgraphics布局。 在顶部,你会发现结构和选项调整视图边界。 它将缩小伪帧(蓝色矩形)的所有尺寸为可绘制文件的大小。
另请参见scaleType选项,使您的图像变得有趣。 在Eclipse中尝试;)
这对我有效
 <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:gravity="center" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/Logo" android:gravity="center" android:scaleType="centerInside" android:src="@drawable/logo" /> </LinearLayout> 
你也可以用这个,
 android:layout_centerHorizontal="true" 
图像将被放置在屏幕的中心
尝试这个。
 <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:gravity="center" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:scaleType="centerInside" android:src="@drawable/logo" /> </LinearLayout> 
这对我来说是什么
 LinearLayout RelativeLayout <ImageView width... height.. ---> android:layout_centerHorizontal="true" 
干杯!
改变布局的重量,你会得到….
input这个:
  <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="0.03"> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:scaleType="centerInside" android:layout_gravity="center" android:src="@drawable/logo" /> </LinearLayout>