Android 我是否误用了dimens.xml?

Android 我是否误用了dimens.xml?,android,android-layout,android-view,Android,Android Layout,Android View,这将是一个非常简单的问题,因为我可能已经做了很长时间的错误的事情。 我将用一个例子介绍我的问题:假设设计师为我们的应用程序(仅限手机)的屏幕定义了以下设计: 然后我将使用以下布局代码实现: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_p

这将是一个非常简单的问题,因为我可能已经做了很长时间的错误的事情。 我将用一个例子介绍我的问题:假设设计师为我们的应用程序(仅限手机)的屏幕定义了以下设计:

然后我将使用以下布局代码实现:

<?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:background="@android:color/white"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example text"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="56sp" />

</LinearLayout>

这在Nexus 5上看起来不错,但当我切换到Nexus One时,我得到了这张图片,这绝对不是我想要的:

所以我的解决方案是:在/values和/values-sw360dp中定义dimens.xml。然后为文本大小添加尺寸标注。其中values-sw360dp/dimens.xml中的大小为56sp,values/dimens.xml中的大小为52sp 当然,当项目变得越来越大时,十美分硬币的数量一直在增加(我们现在大约有一百枚)。当然不仅仅是文本大小,还有宽度、高度、边距和填充

最近我得到一条评论,说跟踪所有的尺寸简直是地狱,因为有时候你忘记编辑一个(比如在制作更小的东西时),然后它在所有屏幕尺寸上看起来都很好,除了一个。我完全同意这一点,但想不出更好的解决办法。这就是dimens.xml的用途,还是我还没有找到更好的解决方案

我得到了这张照片,这绝对不是我想要的

我猜你的意思是,你不希望这篇文章是文字包装

我还没有找到更好的解决办法吗


关于文本大小,欢迎您使用任意数量的库,这些库可以自动调整字体比例

关于“边距和填充”,这些通常由维度资源处理,类似于在Web开发中的CSS规则中处理它们

除此之外,还可以设计流畅的布局(这样您可以硬编码更少的“高度、宽度”),以处理换行(特别是对于事先不知道的文本,例如用户输入的值或从互联网检索的数据)


这真的不仅仅是文字,这只是一个很好的例子,显示了不同


大多数小部件都没有“word wrap”选项;对于这些,您确实需要使用流体布局设计,其中小部件的大小在运行时从其他规则派生(
wrap\u content
match\u parent
LinearLayout
上的权重,
GridLayout
上的跨越规则,
RelativeLayout
上的锚定规则,
TableLayout
上的列大小调整规则等).

关于文本大小,欢迎您使用任意数量的库,这些库可以自动调整字体比例。关于“边距和填充”,这些通常由维度资源处理,类似于在Web开发中的CSS规则中处理。除此之外,还可以设计流畅的布局(这样您可以更少地硬编码)“高度、宽度”),可以处理换行(特别是对于事先不知道的文本,例如用户输入的值或从Internet检索的数据)。这实际上不仅仅是文本,这只是一个很好的例子,说明了两者之间的区别。如果说这些通常由维度资源处理,你是指dimens.xml还是其他什么?维度资源是
res/values*/文件中的
元素。按照惯例,该文件名为
dimens.xml
,但它没有好吧,现在我明白了。如果你把你的第一条评论作为回答,我会接受的。