我的res文件夹中有4个不同的值文件夹,里面有不同的dimens.xml。每个dimens.xml文件都有不同的值。我得到的文件夹如下:
values/dimens.xml
values-sw320dp/dimens.xml
values-sw480dp/dimens.xml
values-sw600dp/dimens.xml
问题是当我运行我的应用程序时,似乎使用的值是存储在values-sw320dp/dimens.xml
中的dimens.xml值,即使我在Google Nexus 5模拟器中运行它也是如此。
示例用法是:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Account "
android:textSize="@dimen/common_textSize_n" />
我做错了什么? 或者,对于不同的屏幕尺寸使用不同尺寸值的正确方法是什么?
非常感谢任何帮助。非常感谢你!
我很抱歉这个问题似乎有多重复。我只是没有找到已经问过的问题的答案。
答案 0 :(得分:1)
你必须在每个文件夹中放置不同的值。而dimens.xml将是默认值,如果缺少任何维度,它将在那里形成。以及所有其他情况下,它将根据屏幕大小获取值。你正在做的是正确的,你也可以为mdpi,xhdpi,hdpi,xhdpi等添加更多的维度。
答案 1 :(得分:1)
将文件夹名称重命名为值-w max_size dp
E.g。 : -
每个文件夹都有一个文件,即dimens.xml。 让我们举个例子,如果你有&#34; feed_title_size&#34; dimen,在任何布局文件中使用。 您希望使用此维度设置textSize但是针对不同的屏幕分辨率。那么你需要在每个分辨率文件夹中创建dimens.xml文件(例如,values-w320dp) 并使用&#34; feed_title_size&#34;在其中创建一个维度属性。资源标记内的名称。 所以&#34; feed_title_size&#34;将出现在多个dimens.xml文件中,并将根据屏幕分辨率自动选择适当的值。
这是values-w320dp文件夹中的dimens.xml,如下所示:
<resources>
<dimen name="feed_name_handle_width">100dp</dimen>
</resources>
这是values-w640dp文件夹中的dimens.xml,如下所示:
<resources>
<dimen name="feed_name_handle_width">150dp</dimen>
</resources>
这是包含在values文件夹中的原始dimens.xml文件。该文件是默认文件。
<resources>
<dimen name="feed_text_width">50dp</dimen>
</resources>
这是包含TextView
的布局文件<android.support.v7.widget.AppCompatTextView
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/feed_text_width" />