钛合金:dp单元不适用于低dpi设备

时间:2014-12-26 23:07:55

标签: android mobile titanium titanium-alloy tss

我正在使用合金制作钛金属移动应用程序,并且我使用dp单元来支持不同的屏幕,但由于在运行应用程序时未按比例缩放UI,因此无法正常工作低dpi(160)设备。

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

Samsung S4 - 4.2.2 - API 17 - 1080 x 1920 - 480 dpi

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

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

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

Sony Xperia Tablet S - 4.1.1 - API 16 - 1280 x 800 - 160 dpi

我还在自定义手机中测试了它 - 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样式表来表示元素和字体的大小,我没有在控制器上计算尺寸,也不想这样做。我相信这不是我的项目的相关因素,因为我对一个全新的项目进行了测试,它也发生在那里。

感谢您的帮助。

0 个答案:

没有答案