Android和中心文本之间的两个不同大小的图像

时间:2014-06-19 08:54:00

标签: android android-layout image-processing

想象一下,我有一个顶部栏,它有一个父容器。

  • 我希望文本位于其中心。
  • 左边我有一个小宽度图像。
  • 在右边,我有一个宽幅图像。

(由于图像尺寸不同,我给每个图像一个宽度相同的父图像。这是为了简化文本居中,同时能够正确跟踪图像点击。如果没有必要跟踪点击,我可以确保图像大小相同,透明度相同。)

我试图使用以下布局解决上面但水平查看,结果是:

  • 左图未在其父图像中左对齐。
  • 文字紧跟在左侧部分之后,而不在中间。
  • 右图像紧跟在中间部分之后。

因此完全失败。这是XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     
 android:layout_width="match_parent" 
  android:layout_height="match_parent"
  android:orientation="horizontal"
  android:id="@+id/myTitleLayout"
  >
<LinearLayout            
  android:layout_height="match_parent"
  android:orientation="horizontal"  
  android:layout_width="100dp"
  android:gravity="left"
  android:layout_gravity="left"    
>       
<ImageView android:id="@+id/myTitleLogoLeft" 
            android:layout_width="wrap_content" 
            android:layout_height="match_parent"
            android:background="@drawable/shared__menu__transparent"
            android:padding="2dp"
            android:visibility="visible"
            android:gravity="left"
            android:layout_gravity="left"
/>                        
</LinearLayout>   
<TextView 
  android:id="@+id/myTitleText" 
  android:text="@string/dotdotdot" 
  android:layout_width="wrap_content" 
  android:layout_height="match_parent"
  android:gravity="center"  
  android:layout_gravity="center"    
/>
<LinearLayout         
  android:layout_height="match_parent"
  android:orientation="horizontal"  
  android:layout_width="100dp"
  android:gravity="right"
  android:layout_gravity="right"
>       
<ImageView android:id="@+id/myTitleLogoRight" 
            android:layout_width="wrap_content" 
            android:layout_height="match_parent"
            android:background="@drawable/shared__menu__transparent"
            android:padding="2dp"
            android:visibility="visible"
            android:gravity="right"
            android:layout_gravity="right"                         
/>                        
</LinearLayout>


</LinearLayout>

3 个答案:

答案 0 :(得分:1)

检查以下代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     
 android:layout_width="match_parent" 
  android:layout_height="wrap_parent"
  android:orientation="horizontal"
  android:id="@+id/myTitleLayout"
  >
<LinearLayout            
  android:layout_height="match_parent"
  android:orientation="horizontal"  
  android:layout_width="100dp"
  android:layout_alignParentLeft="true"
>       
<ImageView android:id="@+id/myTitleLogoLeft" 
            android:layout_width="wrap_content" 
            android:layout_height="match_parent"
            android:background="@drawable/shared__menu__transparent"
            android:padding="2dp"
            android:visibility="visible"
            android:gravity="left"
            android:layout_gravity="left"
/>                        
</LinearLayout>   
<TextView 
  android:id="@+id/myTitleText" 
  android:text="@string/dotdotdot" 
  android:layout_width="wrap_content" 
  android:layout_height="match_parent"
  android:layout_centerInParent="true"
/>
<LinearLayout         
  android:layout_height="match_parent"
  android:orientation="horizontal"  
  android:layout_width="100dp"  
  android:layout_alignParentRight="true"
>       
<ImageView android:id="@+id/myTitleLogoRight" 
            android:layout_width="wrap_content" 
            android:layout_height="match_parent"
            android:background="@drawable/shared__menu__transparent"
            android:padding="2dp"
            android:visibility="visible"
            android:gravity="right"
            android:layout_gravity="right"                         
/>                        
</LinearLayout>


</LinearLayout>

这就是它,还有一个建议是在LinearLayout而不是Image ...

上点击事件

答案 1 :(得分:1)

Try this way,hope this will help you to solve your problem.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/myTitleLayout"
    android:gravity="center">

    <ImageView
        android:id="@+id/myTitleLogoLeft"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:background="@drawable/shared__menu__transparent"
        android:adjustViewBounds="true"
        android:padding="2dp"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center">
        <TextView
            android:id="@+id/myTitleText"
            android:text="@string/dotdotdot"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>


    <ImageView android:id="@+id/myTitleLogoRight"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:background="@drawable/shared__menu__transparent"
        android:adjustViewBounds="true"
        android:padding="2dp" />

</LinearLayout>

答案 2 :(得分:1)

使用RelativeLayout而不是LinearLayout。它使大多数布局更容易。

<?xml version="1.0" encoding="utf-8"?>
<RelateiveLaoyut xmlns:android="http://schemas.android.com/apk/res/android"     
  android:layout_width="match_parent" 
  android:layout_height="match_parent"
  android:id="@+id/myTitleLayout">

    <TextView 
      android:id="@+id/myTitleText" 
      android:text="@string/dotdotdot" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent"
      android:layout_centerInParent="true"   
    />

    <ImageView android:id="@+id/myTitleLogoLeft" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent"
        android:background="@drawable/shared__menu__transparent"
        android:padding="2dp"
        android:visibility="visible"
        android:layout_toLeftOf="@id/myTitleText"
    />

    <ImageView android:id="@+id/myTitleLogoRight" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent"
        android:background="@drawable/shared__menu__transparent"
        android:padding="2dp"
        android:visibility="visible"
        android:layout_toRightOf="@id/myTitleText"                       
    /> 
</RelateiveLaoyut >

如果左侧图像需要位于条形图的左侧,请向其添加android:layout_alignParentLeft="true"。与layout_android:alignParentRight="true"的右图相同。 并且还为视图添加了一些边距,这样它们就不会相互粘连。