我在跨多个屏幕缩放 Android 时遇到问题。根据文档,Android OS 将假定您的 dimens.xml 是为 mdpi 创建的,并为 hdpi、xhdpi 等进行相应的缩放...
但是,我无法看到这项工作。如果我有一个用于 values-hdpi 的文件夹,我的 SGS4 看起来很好,从 values-hdpi 中的 dimens.xml 文件应用了 1.5 比例。但是,每当我从项目中删除 values-hdpi 文件夹以允许 Android 操作系统将其扩展到 hdpi 时,SGS4 只会运行 mdpi 值。我不确定我做错了什么。
安卓清单:
<!-- Screen Support -->
<supports-screens android:resizeable="true"
android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true"/>
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="15"/>
文件夹结构包括 values-es values-fr values-sw600dp
values 将 mdpi 值存储在 dimens.xml 文件中,所有这些都在 dp 和 sp 中完成。尺寸.xml:
(注意*)每当我尝试从 dimens.xml 添加 xml 片段时,它都会对其进行有趣的格式化并删除所有 dimen name= 东西,并且只列出其中使用的 dp 和 sp 。不知道为什么。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="center_text_margin_right">20dp</dimen>
<dimen name="answer_row_top_padding">7dp</dimen>
<dimen name="answer_row_bottom_padding">7dp</dimen>
<dimen name="answer_number_text_size">12sp</dimen>
<dimen name="answer_left_margin_from_answer_number">18dp</dimen>
<dimen name="answer_text_size">12sp</dimen>
<dimen name="answer_points_right_margin">20dp</dimen>
<dimen name="answer_points_left_margin">18dp</dimen>
<dimen name="answer_number_left_margin">60dp</dimen>
<dimen name="center_text_size">12sp</dimen>
<dimen name="center_text_margin_left">20dp</dimen>
<dimen name="center_text_margin_right">20dp</dimen>
<dimen name="answer_title_height">28dp</dimen>
<dimen name="round_circle_margin_left">6dp</dimen>
<dimen name="round_circle_height">6dp</dimen>
<dimen name="round_circle_width">6dp</dimen>
<dimen name="total_score_right_margin">26dp</dimen>
<dimen name="total_score_left_margin">5dp</dimen>
<dimen name="score_text_size">12sp</dimen>
<dimen name="trivia_logo_height">25dp</dimen>
<dimen name="trivia_logo_width">84dp</dimen>
<dimen name="trivia_logo_margin_left">8dp</dimen>
<dimen name="question_margin_left">26dp</dimen>
<dimen name="question_margin_right">26dp</dimen>
<dimen name="question_top_margin">15dp</dimen>
<dimen name="question_margin_bottom">20dp</dimen>
<dimen name="question_text_size">12sp</dimen>
<dimen name="fun_fact_margin_bottom">100dp</dimen>
<dimen name="fun_fact_text_size">12dp</dimen>
<dimen name="answer_row_height">25dp</dimen>
</resources>
如果我用这个文件 dimens.xml 创建一个 values-hdpi 文件夹
30.00dp 10.50dp 10.50dp 18.00dp 27.00dp 18.00dp 30.00dp 27.00dp 90.00dp 18.00dp 30.00dp 30.00dp 42.00dp 9.00dp 9.00dp 9.00dp 39.00dp 7.50dp 18.00dp 37.50dp 126.00dp 8dp 39.00dp 39.00dp 22.50dp 30.00 dp 18.00dp 150.00dp 18.00dp 37.50dp
一切都会好起来的
values-es 和 values-fr 只是包含 strings.xml 的文件夹,没有尺寸。例如,我使用 @dimen/answer_row_height 在整个布局 xml 文件中引用所有内容。
正如我之前所说,如果我在其中放入带有缩放的 dimens.xml 文件的 values-hdpi,它会完美运行,但如果我删除它,Android 不会对其进行缩放。有没有人以前打过这个或知道我在搞砸什么?