2017-03-26 173 views
0

這是應用程序如何貌似現在在TextView中較長的文本:如何將TextView對齊屏幕中心,並將ImageView粘貼在屏幕旁邊?

enter image description here

這裏是我的xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:orientation="vertical" 
    tools:context="com.example.hpuser.weatherapp.MainActivity" 
    android:weightSum="1"> 

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:weightSum="4"> 

     <TextView 
      android:textColor="@android:color/background_dark" 
      android:id="@+id/textViewCity" 
      android:layout_width="158dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="end" 
      android:layout_weight="1.40" 
      android:background="@android:color/transparent" 
      android:ems="10" 
      android:text="Name" 
      android:textAlignment="textEnd" 
      android:textSize="24sp" /> 

     <ImageView 
      android:id="@+id/imageViewPen" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:adjustViewBounds="false" 
      app:srcCompat="@android:drawable/ic_menu_edit" /> 

    </LinearLayout> 

    <TextView 
     android:textColor="@android:color/background_dark" 
     android:id="@+id/textViewTemperature" 
     android:layout_width="350dp" 
     android:layout_height="wrap_content" 
     android:text="0 Celsius deg" 
     android:textAlignment="center" 
     android:textSize="24sp" /> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.32" 
     app:srcCompat="@android:drawable/ic_menu_report_image" /> 

    <TextView 
     android:textColor="@android:color/background_dark" 
     android:id="@+id/textViewDescription" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Description" 
     android:textAlignment="center" 
     android:textSize="24sp" /> 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="220dp" 
     android:layout_weight="0.58" 
     android:paddingTop="40dp"> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:id="@+id/textViewWind" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight=".25" 
       android:paddingBottom="10dp" 
       android:text="Wind speed [mps]" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/textViewWindValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:paddingBottom="10dp" 
       android:id="@+id/textViewClouds" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight=".25" 
       android:text="Cloudiness [%]" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/textViewCloudsValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 

     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:paddingBottom="10dp" 
       android:id="@+id/textViewSunrise" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight=".25" 
       android:text="Sunrise" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/textViewSunriseValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:paddingBottom="10dp" 
       android:id="@+id/textViewSunset" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight=".25" 
       android:text="Sunset" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/textViewSunsetValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="@android:color/background_dark" 
       android:textSize="18sp" /> 
     </TableRow> 

    </TableLayout> 

</LinearLayout> 

我想城市的名字爲中心,並ImageView的堅持因爲它是指改變城市名稱。 對於較小的文字,它看起來不錯,但對於較大的文字,一切都在左側。

回答

1

用下圖所示的相對佈局替換線性佈局,使用torightof屬性我們可以確保圖像始終保持在右側。

Layout_centerHorizo​​ntal使它始終對齊屏幕中心。

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 

    <TextView 
     android:textColor="@android:color/background_dark" 
     android:id="@+id/textViewCity" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@android:color/transparent" 
     android:text="logng_name_here" 
     **android:layout_centerHorizontal="true"** 
     android:textSize="24sp" 
     /> 

    <ImageView 
     android:id="@+id/imageViewPen" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:srcCompat="@android:drawable/ic_menu_edit" 
     **android:layout_toRightOf="@+id/textViewCity"** 
     /> 

</RelativeLayout> 
+0

非常感謝你!它的工作原理完美,你的解釋很好,很容易理解。 – misty

+0

很高興幫助。 – sai

相關問題