首页 > 代码库 > 个人在AS的一些安卓适配经验

个人在AS的一些安卓适配经验

具体的安卓适配http://blog.csdn.net/qfanmingyiq/article/details/53219812
AS在屏幕适配方面做的比eclipse做得好得多.
以下AS中的一些具体操作

语言适配

AS中
1. 在Android工作视图中选择res右键 ,project差不多就不举例
技术分享
2. 鼠标移动new选项在弹出的二级菜单中选择Android resource directory
技术分享
3. 具体步骤
技术分享
技术分享
技术分享
4. 完成创建 并添加语言文件string.xml
此时打开project视图,
技术分享
在这里我们创建一个文件夹并写下文字
技术分享
我们看看原来的values下的string.xml
技术分享

  1. 现象和结果
    如果调用此字符串”app_name” 那么如果手机设置的是英语那么显示的是字符串”美国佬”,不然就是”默认”,这里不仅仅可以做语言的适配还可放弃让他文件如主题颜色和dimens等

图片适配

这个其实每什么可以说的 其实你打开这篇博客看看详细适配教程 我在这里就简单说下
技术分享
drawable-mdpi: 480*320px
drawable-hdpi: 800*460px
drawable-xhdpi:1280*720px
drawable-xxhdpi:1920*1080px
这里我列举一些代表分辨率
如果我们以drawable-mdpi此文件夹为标准.假设我们在这里放一张图48x48
drawable-hdpi: 那么放入1.5倍图片 72*72
drawable-xhdpi:放入2倍图片96*96
drawable-xxhdpi:放入3倍图片 144*144

布局适配

技术分享

  1. layout 默认

  2. layout-1280x720

    分辨率为1280和720显示布局(如果不写layout-land-1280x720或者layout-port-1280x712那么横竖屏幕都都是此布局 ) 注意中间的”x”是小写字母x,创建此文件夹的方式有很多种这里我举例其中之一

    1. 随便打开一个布局文件比如layout中的一个布局文件
      技术分享
    2. 随便打开一个布局文件比如layout中的一个布局文件
      技术分享
    3. 添写大小
      技术分享
  3. layout-land默认横屏
    技术分享
    技术分享
    技术分享

  4. layout-port默认竖屏
    同上
  5. layout-land-1280x720

    在分辨率为1280x720并且为横屏是调用此布局
    技术分享
    技术分享
    技术分享

  6. layout-sw360dp

    在宽度为大于360dp分辨调用此布局
    技术分享
    技术分享
    技术分享

  7. layout-sw360dp-land
    技术分享
    技术分享
    技术分享
    记得别点完成,我们继续在最左侧的选择栏选择
    技术分享
    技术分享

距离适配dimens

dimens文件夹位于values.那么我们创建values-w820dp或者values-1280x720 在里面写dimens文件即可完成适配
这里我们创建values-w820dp为例子其他类比
技术分享
技术分享
技术分享
技术分享
然后再次目录创建dimens.xml即可
技术分享

具体调用距离方式:dimens使用详细介绍

注意点

  1. layout-sw320dp 和layout-1280x720 同时生效的画.是调用layout-sw320dp
  2. 如果手机满足 layout-sw320dp横竖屏都是调用此布局而不是layout(默认) 如果写了layout-sw360dp-land 横屏时调用此 其他类似
  3. 适配还可以添加语言和屏幕大小同时生效如下
    技术分享
  4. 在用代码获取获取的DPI和实际算出的DPI是有差距的 我在写此博文前突然发现的我的提问
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    个人在AS的一些安卓适配经验