首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于线性权重的布局中错位的文本视图

基于线性权重的布局中错位的文本视图
EN

Stack Overflow用户
提问于 2014-02-27 17:32:02
回答 1查看 109关注 0票数 0

对于android之类的系统来说,我仍然是个新手,我的任务是做一个看起来完全像设计师草图的布局。尝试使用线性布局和权重,以确保无论分辨率如何,元素相对于背景都在同一位置。

最终结果应该如下所示:

而在实际设备上,它最终看起来像这样的http:

日期和温度的错位似乎与字体大小有关(字体越大,它们的错位就越多)。为什么会这样呢?

我的代码:

<?xml version="1.0"?>
<LinearLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/all"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/monday"
android:includeFontPadding="false"
android:orientation="vertical"
tools:context=".MainActivity" >

<LinearLayout
    android:id="@+id/hwrap1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1.70"
    android:orientation="horizontal" >
<!-- wrapper for the first line (Time/day and namedays) -->

    <LinearLayout
        android:id="@+id/bloat1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.20"
        android:orientation="horizontal" >
    </LinearLayout>
 <!-- empty space before day and time -->


    <!-- wrapper around time and day -->

    <TextView
        android:id="@+id/dayOfWeek"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.90"
        android:gravity="top|left"
        android:text="PIRMDIENA"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.1"
        android:orientation="horizontal" >
    </LinearLayout>
<!-- empty space before namedays -->

    <TextView
        android:id="@+id/nameDays"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.9"
        android:gravity="left|center"
        android:text="Arnijs, Jorijs, Blobijs"
        android:textColor="#041869"
        android:textSize="60dp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/hwrap2"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1.20"
    android:orientation="horizontal" >
<!-- wrapper around second line (date and temp) -->

    <LinearLayout
        android:id="@+id/bloat3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.33"
        android:orientation="horizontal" >
 <!-- space before date -->
    </LinearLayout>

    <TextView
        android:id="@+id/date"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3.65"
        android:gravity="left|center"
        android:text="DATE"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="80dp" />

    <TextView
        android:id="@+id/temperature"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.1"
        android:gravity="center"
        android:text="14c"
        android:textColor="#FFFFFF"
        android:textSize="80dp" />
  </LinearLayout>

  <LinearLayout
    android:id="@+id/hwrap3"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="3.9"
    android:orientation="horizontal" >
   <!-- wrapper around message (3rd line) -->

    <LinearLayout
        android:id="@+id/bloat4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:orientation="horizontal" >
   <!-- space before message -->
    </LinearLayout>

    <TextView
        android:id="@+id/msg"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="6"
        android:gravity="center|left"
        android:text="Deep text about life... much sense such fullfillment wow"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat5"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:orientation="horizontal" >
 <!-- space after message -->
    </LinearLayout>
</LinearLayout>

</LinearLayout>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-27 18:44:19

尝试类似这样的操作,也可以使用scrollview来适应所有屏幕

<LinearLayout
    android:id="@+id/hwrap1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <!-- wrapper for the first line (Time/day and namedays) -->

    <LinearLayout
        android:id="@+id/bloat1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.20"
        android:orientation="horizontal" >
    </LinearLayout>
    <!-- empty space before day and time -->


    <!-- wrapper around time and day -->

    <TextView
        android:id="@+id/dayOfWeek"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.90"
        android:gravity="top|left"
        android:text="PIRMDIENA"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.1"
        android:orientation="horizontal" >
    </LinearLayout>
    <!-- empty space before namedays -->

    <TextView
        android:id="@+id/nameDays"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.9"
        android:gravity="left|center"
        android:text="Arnijs, Jorijs, Blobijs"
        android:textColor="#041869"
        android:textSize="60dp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/hwrap2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/hwrap1"
    android:orientation="horizontal" >

    <!-- wrapper around second line (date and temp) -->

    <LinearLayout
        android:id="@+id/bloat3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.33"
        android:orientation="horizontal" >

        <!-- space before date -->
    </LinearLayout>

    <TextView
        android:id="@+id/date"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3.65"
        android:text="DATE"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="80sp" />

    <TextView
        android:id="@+id/temperature"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.1"
        android:text="14c"
        android:textColor="#FFFFFF"
        android:textSize="80sp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/hwrap3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/hwrap2"
    android:orientation="horizontal" >

    <!-- wrapper around message (3rd line) -->

    <LinearLayout
        android:id="@+id/bloat4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:orientation="horizontal" >

        <!-- space before message -->
    </LinearLayout>

    <TextView
        android:id="@+id/msg"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="6"
        android:text="Deep text about life... much sense such fullfillment wow"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat5"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:orientation="horizontal" >

        <!-- space after message -->
    </LinearLayout>
</LinearLayout>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22064316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档