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
,但它没有好吧,现在我明白了。如果你把你的第一条评论作为回答,我会接受的。