uestcfei
V2EX  ›  Android

android 中的屏幕适配问题

  •  
  •   uestcfei · Feb 7, 2015 · 14762 views
    This topic created in 4112 days ago, the information mentioned may be changed or developed.

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

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

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

    @kohoh 是720×1280

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

    其实xhdpi也不错。好计算 。
    uestcfei
        24
    uestcfei  
    OP
       Feb 9, 2015
    @alex110 在xhdpi下你们是怎么计算的呢??
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1037 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 18:50 · PVG 02:50 · LAX 11:50 · JFK 14:50
    ♥ Do have faith in what you're doing.