V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
uestcfei
V2EX  ›  Android

android 中的屏幕适配问题

  •  
  •   uestcfei · 2015 年 2 月 7 日 · 14220 次点击
    这是一个创建于 4001 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在android开发的过程中大家都是怎么适配不同的屏幕的,我的意思不是指那几个文件夹的意义,而是比如:在界面中我有一个ImageButton,那么我应该如何设定这个ImageButton的大小(多少个px)才能适配不同的屏幕,不会是自己一个一个的去试吧。。。。
    另外,大家有什么比较好的android屏幕适配的工具也推荐一下嘛。。

    24 条回复    2015-02-09 22:53:57 +08:00
    ffts
        1
    ffts  
       2015 年 2 月 7 日 via Android
    有个简便的方法,让设计按720p尺寸设计,然后给的单位应该是像素,用的时候除以2,单位用dp,这样在现在的大部分机子上效果应该还可以,对了,那些切图都放到xhdpi下
    clanned
        2
    clanned  
       2015 年 2 月 7 日 via Android
    谷歌android dp dip sp,度量单位用dp,屏幕320的像素密度1dp=2px,按照这个换算到别的机器基本上位置不会变
    youxiachai
        3
    youxiachai  
       2015 年 2 月 7 日
    IDE 不就是与多屏幕预览了吗.......还是不知道IDE有这个功能?
    michaelye1988
        4
    michaelye1988  
       2015 年 2 月 7 日
    上面几位说的差不多了,注意单位,px是像素,不能用这个作为单位,如果是宽高,要用dp/dip,如果是文字大小用sp,系统会根据手机屏幕自适应。

    参考: http://developer.android.com/guide/practices/screens_support.html
    GhostFlying
        5
    GhostFlying  
       2015 年 2 月 7 日 via Android   ❤️ 1
    楼上给的那个链接说的比较详细,基本上就是不要使用 px,用 dp 和 sp
    bombshell
        6
    bombshell  
       2015 年 2 月 7 日
    直接在IDE里面preview all screen size就好了
    WildCat
        7
    WildCat  
       2015 年 2 月 7 日 via iPhone
    借地方问问题,比如如果屏幕高度是 400dp ,设置某个元素的 layout_marginTop 为 20dp
    如果高度是 200dp ,设置某个元素的 layout_marginTop 为 10dp
    hatcloud
        8
    hatcloud  
       2015 年 2 月 7 日
    请好好看看Android Design啊,上面都写了。
    Android上的布局不用px,用的是dp和sp
    uestcfei
        9
    uestcfei  
    OP
       2015 年 2 月 7 日
    @ffts 切图为什么要放到xhdpi下呢
    uestcfei
        10
    uestcfei  
    OP
       2015 年 2 月 7 日
    @youxiachai 我知道有预览,但是没有一个不同屏幕之间转换的公式吗??
    uestcfei
        11
    uestcfei  
    OP
       2015 年 2 月 7 日
    @michaelye1988 多谢,我会再多研究一下,真心感觉Android的屏幕适配是个大问题,Google也不出个方案来解决一下。。。。
    uestcfei
        12
    uestcfei  
    OP
       2015 年 2 月 7 日
    @WildCat 没明白您的意思。。。
    kohoh
        13
    kohoh  
       2015 年 2 月 7 日 via Android
    @ffts 720p指的的是720*1080吗?那尺寸取多少4.7寸?
    kmvan
        14
    kmvan  
       2015 年 2 月 7 日
    为什么安卓不能像css网页那样“响应式”来适应呢?还要分开多个文件夹来放资源
    MASAILA
        15
    MASAILA  
       2015 年 2 月 7 日
    @ffts 1080p的屏幕效果哭瞎
    MASAILA
        16
    MASAILA  
       2015 年 2 月 7 日
    @kmvan 因为Android上不止要考虑分辨率 还有屏幕尺寸
    zhangdawei
        17
    zhangdawei  
       2015 年 2 月 7 日
    @kohoh 还要考虑DPI,通过分辨率和DPI共同适配,
    wsxyeah
        18
    wsxyeah  
       2015 年 2 月 7 日
    距离单位用 dp、sp;
    使用 .9.png;
    做好高分屏的适配,低分率的会自动缩放。
    9hills
        19
    9hills  
       2015 年 2 月 7 日
    beingbin
        20
    beingbin  
       2015 年 2 月 7 日
    @kohoh 是720*1280 ,1080p才是1080*1920
    allan1st
        21
    allan1st  
       2015 年 2 月 7 日 via Android
    @kmvan 因为低分辨率机器加载高分辨资源是很浪费的。
    ffts
        22
    ffts  
       2015 年 2 月 7 日
    @uestcfei 其实就是假设大部分机子是差不多5寸的屏幕,然后分辨率是720的,这样的机子就是xhdpi,xhdpi下px和dp的换算是2:1,所以就除以2,切图也就放到相应的xhdpi下,系统会自动缩放,不过只是简便方法,遇到不行的还得再调

    @kohoh 是720×1280

    @MASAILA 我试过的1080的貌似还好
    alex110
        23
    alex110  
       2015 年 2 月 9 日
    我们公司现在都是直接在XXHDPI下作图了。 换算比例就是2.4了。

    其实xhdpi也不错。好计算 。
    uestcfei
        24
    uestcfei  
    OP
       2015 年 2 月 9 日
    @alex110 在xhdpi下你们是怎么计算的呢??
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5801 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 02:47 · PVG 10:47 · LAX 18:47 · JFK 21:47
    ♥ Do have faith in what you're doing.