android:如何在imageview的水平中心对齐图像?
Posted
技术标签:
【中文标题】android:如何在imageview的水平中心对齐图像?【英文标题】:android: how to align image in the horizontal center of an imageview? 【发布时间】:2011-02-04 22:47:43 【问题描述】:我尝试了所有比例类型,但所有这些都导致图像位于图像视图的左角。
<ImageView
android:id="@+id/image"
android:scaleType="centerInside"
android:layout_
android:layout_
android:layout_marginRight="6dip"
android:background="#0000"
android:src="@drawable/icon1" />
【问题讨论】:
【参考方案1】:<ImageView
android:id="@+id/img"
android:layout_
android:layout_
android:layout_gravity="center" />
【讨论】:
如果父级是RelativeLayout
,使用android:layout_centerHorizontal="true"
即使 Android Studio 不显示此属性,此解决方案也有效。【参考方案2】:
您的 ImageView 具有属性 wrap_content
。我认为图像在图像视图中居中,但图像视图本身不在父视图中。如果屏幕上只有图像视图,请尝试match_parent
而不是wrap_content
。如果布局中有多个视图,则必须将 imageview 居中。
【讨论】:
我在布局中确实有多个视图。 “居中图像视图”到底是什么意思? ImageView 本身应该在布局组件中。这个周围的布局组件可以排列子元素...如果您可以发布整个布局文件,我可以尝试给您一些更精确的提示。 Yang - 我认为你的问题是父级是相对布局而不是线性布局。如果是这种情况,请尝试使用 android:layout_centerHorizontal="true" 而不是 layout_gravity。【参考方案3】:您可以使用以下方法将 ImageView 本身居中:
android:layout_centerVertical="true"
或 android:layout_centerHorizontal="true"
对于垂直或水平。或者在父对象内居中:
android:layout_centerInParent="true"
但听起来您正试图将实际源图像置于图像视图本身的中心,我不确定。
【讨论】:
当父级是LinearLayout时如何处理? 知道了!!我想如果你的父母是一个线性布局,你可以在它的子 ImageView 中设置一个属性 - android:layout_gravity="center"。这对我有用。谢谢。【参考方案4】:在线性布局中对齐图像视图时,这对我有用。
<ImageView android:id="@android:id/empty"
android:src="@drawable/find_icon"
android:layout_
android:layout_
android:layout_gravity="center"
android:scaleType="center"
/>
【讨论】:
【参考方案5】:试试这个代码:
<LinearLayout
android:layout_
android:layout_
android:gravity="center_horizontal">
<ImageView
android:id="@+id/imgBusiness"
android:layout_
android:layout_
android:src="@drawable/back_detail" />
</LinearLayout>
【讨论】:
请提供一些文字解释。【参考方案6】:对 layout_width 单独使用“fill_parent”就可以了:
<ImageView
android:id="@+id/image"
android:layout_
android:layout_
android:layout_marginRight="6dip"
android:background="#0000"
android:src="@drawable/icon1" />
【讨论】:
【参考方案7】:试试:
android:layout_
android:scaleType="fitStart"
在图片上RelativeLayout
【讨论】:
【参考方案8】:对我来说,android:gravity="center"
在父布局元素中发挥了作用。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/fullImageView"
android:layout_
android:layout_
android:adjustViewBounds="true"
android:contentDescription="@string/fullImageView"
android:layout_gravity="center" />
</LinearLayout>
【讨论】:
【参考方案9】:您可以使用以下方法在线性布局中水平图像视图:
android:layout_gravity="center"
它将您的图像居中到父元素,如果您只想水平居中,您可以使用:
android:layout_gravity="center_horizontal"
【讨论】:
【参考方案10】:如果你使用 LinearLayout,你可以使用很多东西,那么你可以使用android:layout_gravity="center"
如果您使用的是 RelaytiveLayout,那么您可以使用centerHorizontal="true"
【讨论】:
【参考方案11】:使用这个属性: android:layout_centerHorizontal="true"
【讨论】:
【参考方案12】:这是如何使 ImageView 居中的 xml 代码,我使用了“layout_centerHorizontal”。
<LinearLayout
android:layout_
android:layout_
android:orientation="horizontal"
android:layout_centerHorizontal="true"
>
<ImageView
android:layout_
android:layout_
android:src="@drawable/img2"
/>
<ImageView
android:layout_
android:layout_
android:src="@drawable/img1"
/>
</LinearLayout>
或者这个其他例子...
<LinearLayout
android:layout_
android:layout_
android:orientation="horizontal"
android:gravity="center_horizontal"
>
<ImageView
android:layout_
android:layout_
android:src="@drawable/img2"
/>
<ImageView
android:layout_
android:layout_
android:src="@drawable/img1"
/>
</LinearLayout>
【讨论】:
如果这是一个答案,请添加一些解释。如果它打算成为一个问题,请提出一个新问题。【参考方案13】:将图像的宽度指定为 match_parent,并根据需要指定高度,例如 300 dp。
<ImageView
android:id = "@+id/imgXYZ"
android:layout_width = "match_parent"
android:layout_height = "300dp"
android:src="@drawable/imageXYZ"
/>
【讨论】:
以上是关于android:如何在imageview的水平中心对齐图像?的主要内容,如果未能解决你的问题,请参考以下文章
在水平的RecyclerView中显示ImageView会在Android中的图像周围放置大的边距(?)