android-Supporting Different Devices

 Some of the important variations that you should consider include different languages, screen sizes, and versions of the Android platform.

Supporting Different Languages

Learn how to support multiple languages with alternative string resources.
Supporting Different Screens
Learn how to optimize the user experience for different screen sizes and densities.
Supporting Different Platform Versions
Learn how to use APIs available in new versions of Android while continuing to support older versions of Android.

>To add support for more languages, create additional values directories inside res/ that include a hyphen and the ISO language code at the end of the directory name.

MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml
>Android categorizes device screens using two general properties: size and density. (Different Screens)

As such, you should include some alternative resources that optimize your app’s appearance for different screen sizes and densities.
  • There are four generalized sizes: small, normal, large, xlarge
  • And four generalized densities: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
To optimize your user experience on different screen sizes, you should create a unique layout XML file for each screen size you want to support.

MyProject/
    res/
        layout/              # default (portrait)
            main.xml
        layout-land/         # landscape
            main.xml
        layout-large/        # large (portrait)
            main.xml
        layout-large-land/   # large landscape
            main.xml
Note:  Android 3.2 and above supports an advanced method of defining screen sizes that allows you to specify resources for screen sizes based on the minimum width and height in terms of density-independent pixels. 

To generate these images, you should start with your raw resource in vector format and generate the images for each density using the following size scale:

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline)
  • ldpi: 0.75
MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png
> how to take advantage of the latest APIs while continuing to support older versions as well.( Platform Versions )

Tip: In order to provide the best features and functionality across several Android versions, you should use the Android Support Library in your app, which allows you to use several recent platform APIs on older versions.

 <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
private void setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}
<activity android:theme="@android:style/Theme.Dialog">
<application android:theme="@style/CustomTheme">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值