屏幕适配

作者: 没风的地方 | 来源:发表于2018-04-17 11:50 被阅读23次

ConstraintLayout的使用可以参考 代码咖啡 的文章,当然也可以看google官方文档。推荐官方文档,最新最全最准确,示例很到位。

这里只讨论常用的适配,不讨论大屏(7英寸以上的)适配问题,想看可以看这里

屏幕的适配来源于android的开源,因此使用的厂商众多,各种型号千奇百怪,布局在不同的手机上显示的效果差异大,不能达到预期效果。

1 密度无关像素 dp

使用dp来设置大小,在不同的屏幕上会显示相对于屏幕的相同比例大小,比如在1080x1920的屏幕上用dp设置某条线段的长度,刚好占屏一半,在其他手机也会占据一半,他会根据不同的像素密度自动调整占用的像素个数。

2 布局的使用ConstraintLayout
使用这个新布局,这个布局吸收了RelativeLayout和LinearLayout等的优点,可以随意设置控件之间的关系和相对位置,非常的好用。还可以设置按比例来确定控件位置,对于屏幕的适配非常的适用,也使得屏幕适配更为简单和便捷。

3 使用.9.png
在需要扩展的按钮,使用.9图片可以使得图片质量不会变差。

4 ImageView图片的scaleType一般设置为center_crop

5 横竖屏切换布局
在res目录下新建一个layout_land文件夹(在project模式下可以看到)


image.png

在里面再新建一个同名的布局,在横竖屏切换时就会自动加载
*注意:注意保存参数,因为横竖屏切换经历了activity的销毁和重建,我们做如下操作1:

@Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putString("textview", mTextView.getText().toString());
        super.onSaveInstanceState(outState);
    }
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextView=(TextView)findViewById(R.id.textView);
        //恢复数据
        if (savedInstanceState != null) {
            // Restore value of members from saved state
            mTextView.setText(savedInstanceState.getString("textview"));
        }
 
    }

也可以这样操作2:

    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        mTextView.setText(savedInstanceState.getString("textview"));
    }

6 使用多布局,使用到布局别名,我们举个栗子吼(需要新建多个布局,对于项目时间紧迫的不适用)。
我们先建好布局:horizontal.layout、vertical.layout

    <item name="main_layout" type="layout">@layout/horizontal</item>  
    <bool name="has_two_panes">false</bool>  
</resources>
    <item name="main_layout" type="layout">@layout/vertical</item>
    <bool name="has_two_panes">true</bool>
</resources>

bool的作用是目前使用的是哪个布局。

相关文章

  • 屏幕适配总结

    屏幕适配总结 为什么要针对屏幕做适配 drawable目录常见问题 : 屏幕适配方案:

  • Android屏幕适配-应用篇

    目录 Android屏幕适配-基础篇Android屏幕适配-应用篇 Android屏幕适配最主要的原因:  是由于...

  • 屏幕适配的那些坑

    屏幕适配的那些坑 屏幕适配的那些坑

  • LayaAir屏幕适配

    LayaAir屏幕适配 官方教程链接:LayaAir实战开发11-屏幕适配 屏幕适配 随着移动端设备(手机、平板、...

  • she

    1.适配的分类 系统适配 屏幕适配 1.1屏幕适配历史 1.1.1autoresizing 去掉auto layo...

  • Android屏幕适配

    一. 为什么要适配屏幕 android屏幕大小、屏幕密度碎片化严重 二. 怎么样适配屏幕 图片适配 应用图标提供不...

  • 屏幕适配AutoResizing

    适配器简介 AutoResizing 屏幕适配的历史 -iPhonestyGS\IPhone4 -没有屏幕适配可言...

  • css media 适配屏幕宽度

    H5 屏幕适配 css media 适配屏幕宽度;js 通过 适配获取屏幕宽度,来执行对应方法; max-widt...

  • 关于iOS适配的一点事

    屏幕适配及文字适配

  • Android屏幕适配(4)常见:第三种

    前言:Android屏幕适配(1)基础知识篇Android屏幕适配(2)常见:第一种Android屏幕适配(3)常...

网友评论

    本文标题:屏幕适配

    本文链接:https://www.haomeiwen.com/subject/plpukftx.html