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

android 中的屏幕适配问题

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

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

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

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

    其实xhdpi也不错。好计算 。
        24
    uestcfei   2015-02-09 22:53:57 +08:00
    @alex110 在xhdpi下你们是怎么计算的呢??
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3035 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 36ms · UTC 11:11 · PVG 19:11 · LAX 03:11 · JFK 06:11
    ♥ Do have faith in what you're doing.