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

android 中的屏幕适配问题

  •  
  •   uestcfei · 2015-02-07 08:51:45 +08:00 · 10687 次点击
    这是一个创建于 3583 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    @kohoh 是720×1280

    @MASAILA 我试过的1080的貌似还好
    alex110
        23
    alex110  
       2015-02-09 14:38:12 +08:00
    我们公司现在都是直接在XXHDPI下作图了。 换算比例就是2.4了。

    其实xhdpi也不错。好计算 。
    uestcfei
        24
    uestcfei  
    OP
       2015-02-09 22:53:57 +08:00
    @alex110 在xhdpi下你们是怎么计算的呢??
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.