【问题标题】:android: how to align image in the horizontal center of an imageview?android:如何在imageview的水平中心对齐图像?
【发布时间】:2011-02-04 22:47:43
【问题描述】:

我尝试了所有比例类型,但所有这些都导致图像位于图像视图的左角。

 <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" />

【问题讨论】:

    标签: android alignment


    【解决方案1】:
    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
    

    【讨论】:

    • 如果父级是RelativeLayout,使用android:layout_centerHorizontal="true"
    • 即使 Android Studio 不显示此属性,此解决方案也有效。
    【解决方案2】:

    您的 ImageView 具有属性 wrap_content。我认为图像在图像视图中居中,但图像视图本身不在父视图中。如果屏幕上只有图像视图,请尝试match_parent 而不是wrap_content。如果布局中有多个视图,则必须将 imageview 居中。

    【讨论】:

    • 我在布局中确实有多个视图。 “居中图像视图”到底是什么意思?
    • ImageView 本身应该在布局组件中。这个周围的布局组件可以排列子元素...如果您可以发布整个布局文件,我可以尝试给您一些更精确的提示。
    • Yang - 我认为你的问题是父级是相对布局而不是线性布局。如果是这种情况,请尝试使用 android:layout_centerHorizo​​ntal="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_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:scaleType="center"
        />
    

    【讨论】:

      【解决方案5】:

      试试这个代码:

       <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>
      

      【讨论】:

      • 请提供一些文字解释。
      【解决方案6】:

      对 layout_width 单独使用“fill_parent”就可以了:

       <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" />
      

      【讨论】:

        【解决方案7】:

        试试:

        android:layout_height="wrap_content"
        android:scaleType="fitStart"
        

        在图片上RelativeLayout

        【讨论】:

          【解决方案8】:

          对我来说,android:gravity="center" 在父布局元素中发挥了作用。

          <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>
          

          【讨论】:

            【解决方案9】:

            您可以使用以下方法在线性布局中水平图像视图:

             android:layout_gravity="center"
            

            它将您的图像居中到父元素,如果您只想水平居中,您可以使用:

             android:layout_gravity="center_horizontal"
            

            【讨论】:

              【解决方案10】:

              如果你使用 LinearLayout,你可以使用很多东西,那么你可以使用android:layout_gravity="center"

              如果您使用的是 RelaytiveLayout,那么您可以使用centerHorizontal="true"

              【讨论】:

                【解决方案11】:

                使用这个属性: android:layout_centerHorizo​​ntal="true"

                【讨论】:

                  【解决方案12】:

                  这是如何使 ImageView 居中的 xml 代码,我使用了“layout_centerHorizo​​ntal”。

                  <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>
                  

                  或者这个其他例子...

                  <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>
                  

                  【讨论】:

                  • 如果这是一个答案,请添加一些解释。如果它打算成为一个问题,请提出一个新问题。
                  【解决方案13】:

                  将图像的宽度指定为 match_parent,并根据需要指定高度,例如 300 dp。

                  <ImageView
                      android:id = "@+id/imgXYZ"
                      android:layout_width = "match_parent"
                      android:layout_height = "300dp"
                      android:src="@drawable/imageXYZ"
                      />
                  

                  【讨论】:

                    猜你喜欢
                    • 2021-08-12
                    • 2012-03-15
                    • 2018-06-23
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-07-25
                    • 1970-01-01
                    相关资源
                    最近更新 更多