Android 屏幕适配

屏幕适配的方法:

首先我们来整理一下屏幕适配有多少种方法,我们该如何选择,在适配过程中我又需要注意些什么。

1.可以在不同的layout目录中放置同名但布局内容不同的布局。这样在不同尺寸的手机中系统会自动匹配相应的布局。

layout 默认屏幕
res/layout-small 小屏幕 (426dp x 320dp)
res/layout-large 大屏幕(640dp x 480dp)
res/layout-xlarge 特大屏幕(960dp x 720dp)

2.使用分辨率适配创建不同分辨率的文件

res/layout-1920x1080
res/layout-1080x720
res/layout-1280x720

3.使用sw(最小宽度)适配创建不同sw文件

res/layout-sw360dp
res/layout-sw540dp
res/layout-sw600dp
res/layout-sw800dp
res/layout-sw900dp

4.使用w宽度适配创建不同w文件

res/layout-w360dp
res/layout-w540dp
res/layout-w600dp
res/layout-w800dp
res/layout-w900dp

5.横竖屏适配创建横屏文件与竖屏文件

res/layout-land/main.xml 横屏  
res/layout-port/main.xml 竖屏

1.创建项目时,在布局方面我们该如何选择。

LinearLayout (线性布局)

优点:可按比例适配,缺点。布局较复杂时往往 嵌套较多,影响程序运行速度,消耗设备性能。

RelativeLayout(相对布局)

优点:嵌套少,消耗性能少。 缺点 : 控件间相互影响。有时无法布满整个屏幕。

FrameLayout(帧布局)

优点:会根据元素的书写顺序,依次加入到帧布局中,后面的元素会覆盖前面的元素。缺点。不适合进行复杂的布局

(AbsoluteLayout)绝对布局—很少用

(TableLayout)表格布局 —很少用

ConstraintLayout 约束布局–新出现的布局

优点:可进行比例布局,嵌套少。 缺点:暂未发现缺点。(现在AndroidStudio 3.2.1版本创建项目时默认使用的布局,推荐使用)

2.书写控件时怎样让文字显示正常,图像不变形。

1 TextView

android:layout_marginRight=“5dp”—控件右边空出5dp的距离
android:backGround=""—控件的背景色
android:gravity=""—文本相对控件的位置
android:layout_gravity=""—控件相对于其所在容器的位置
android:drawable+四个方向 在文本控件中添加图片
android:drawablepadding 图片与文本的间隔
android:ellipsize=“middle”—字过长不想换行,可以使用省略号,此表示省略号在中间的位置
在这里插入图片描述
在这里插入图片描述

	android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"

android:autoLink :设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web /email/phone/map/all)
根据内容类型的不同,点击时自动打开相应的应用程序

2 ImageView

专门用于显示图片的控件,src属性定义具体的图片。background属性也可以定义图片,当src和background同时定义时,src会覆盖background。

center:保持图片原尺寸,居中显示,超出部分不显示 -->
centerCrop:按比例扩大图片尺寸,居中显示,超出部分不显示 -->
centerInside:按比例缩小图片,居中显示,完全显示 -->
fitCenter:按比例缩放图片,居中显示,完全显示。注意:该属性为默认属性 -->
fitStart:按比例缩放,放在ImageView顶部显示,完全显示图片 -->
fitEnd:按比例缩放,放在ImageView底部,完全显示图片 -->
fitXY:不再按照比例缩放,目的是为了填满整个ImageView控件 -->
matrix:没有缩放,从原始图片的初始位置(左上角)开始展示,超出部分不显示 -->

3 Button

在这里插入图片描述

ps:有专为显示图片的Button控件:ImageButton控件。
style="?android:attr/borderlessButtonStyle"设置透明的按钮,这种写法是安卓自带的样式,也可以通过设置背景色来设置透明度

3. 如果我们想要布满整个屏幕我们该如何布局。

1.使用线性布局 Linearlayout 分配权重属性: layout_weight

2.使用相对布局 Relativelayout ,单位使用DP适配。

3.使用约束布局 Contraintlayout 使用百分比适配。设置辅助线 (推荐使用)

4.在代码中获取屏幕大小,进行动态布局。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值