0

我正在使用合金在钛合金中开发移动应用程序,并且我正在使用 dp 单位来支持不同的屏幕,但是由于在低 dpi (160) 设备上运行应用程序时 UI 没有被缩放,所以某些东西无法正常工作。

下图显示了应用程序如何在 480 dpi 设备中显示和正确缩放。此屏幕截图取自 genymotion 模拟设备。

三星 S4 - 4.2.2 - API 17 - 1080 x 1920 - 480 dpi

我也在以下设备中尝试过它,它表现正常。

  • 三星 S3 - 4.2.2 - API 17 - 720 x 1280 - 320 dpi
  • 三星 S2 - 4.1.1 - API 16 - 480 x 800 - 240 dpi
  • 谷歌 Galaxy Nexux - 4.3 - API 18 - 768 x 1280 - 320 dpi
  • 三星 Galaxy Note 3 - 4.3 - API 18 - 1080 x 1920 - 480 dpi
  • 索尼 Xperia Tablet Z - 4.1.1 - API 16 - 1920 x 1200 - 320 dpi

问题是它在 160 dpi 设备上无法正常工作,因为 ui 看起来太小而且似乎没有被缩放。

索尼 Xperia 平板电脑 S - 4.1.1 - API 16 - 1280 x 800 - 160 dpi

我还在 Custom Phone - 4.3 - API 18 - 768 x 1280 - 160 dpi 中对其进行了测试,它看起来完全一样。

(抱歉,因为 10 信誉积分规则,我无法发布链接,我可以提供更多截图)

我已经在真实设备中对其进行了测试,但我遇到了同样的问题:它在我的三星 Galaxy 手机中显示良好,但在我的三星 Galaxy 选项卡上无法正常工作。

有谁知道我做错了什么或我错过了什么?这似乎是一个只有 android 的问题,因为它在 ios 上也能正常工作。

这是 tiapp.xml 中清单标签的代码

<manifest>
    <!-- Allows the API to download data from Google Map servers -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <!-- Allows the API to cache data -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <!-- Use GPS for device location -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <!-- Use Wi-Fi or mobile connection for device location -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <!-- Allows the API to access Google web-based services -->
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <!-- Specify OpenGL ES 2.0 as a requirement -->
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
    <!-- Replace com.domain.appid with your application ID -->
    <uses-permission android:name="com.vivelabbogota.guiadetramitesvivelabbogota.MAPS_RECEIVE"/>
    <permission android:name="com.vivelabbogota.guiadetramitesvivelabbogota.MAPS_RECEIVE" android:protectionLevel="signature"/>
    <application>
        <!-- Replace "PASTE YOUR GOOGLE MAPS API KEY HERE" with the Google API key you obtained -->
        <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="removed_for_stackoverflow"/>
    </application>
    <activity
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="@string/app_name"
        android:name=".GuiaDeTramitesActivity" android:theme="@style/Theme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <!-- Need to specify at least API level 11 for Titanium SDK 3.2.x and prior -->
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16"/>
</manifest>

我正在使用 .tss 样式表来确定元素和字体的大小,我没有在我的控制器上计算大小,也不想这样做。我相信这与我的项目无关,因为我对一个全新的项目进行了测试,并且它也发生在那里。

谢谢你的帮助。

4

0 回答 0