屏幕适配(尺寸单位、图片、文字、布局)
2018-03-07 22:45
519 查看
1.如何使用尺寸单位适配
在res下新建valus-960x540、values->1184x720文件夹,分别创建名为dimens.xml的文件。
为每个dimens.xml创建一个标签,name为app_width,值分别为100dp和800dp。
在activity_main.xml中创建一个Button,设置其宽度时,使用android:layout_width=”@dimen/app_width”.
分别在正常分辨率、960*540分辨率、1184*720分辨率下运行,观察Button的宽带变化。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/59d9e7c3299fce58ae200d298f958ef3)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/c19e51a3efb1879d56876917e517445b)
分别在里面创建一个标签,name为app_width,值为100dp和800dp
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/7221758fc474b510049730f648f390ab)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/a2c67201c62ef9978174bbb492983dfc)
第3步注意的是宽度时@dimen/app_width
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/a4bd9e9786eb7cad0c8385616a4d2c19)
这里我通过两个模拟器 分辨率分别是2016x1080和1920x1080
效果图对比
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/79181b7e3bcf846e6e6d05896f2415a8)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/388e3f67e960650f196911618ce40fe5)
明显上一个按钮更长
2.什么是图片适配
drawable-hapi:运行在密度为hdpi的设备时,加载此文件夹。
drawable-hapi:运行在密度为ldpi的设备时,加载此文件夹
drawable-hapi:运行在密度为mdpi的设备时,加载此文件夹。
drawable-hapi:运行在密度为xdpi的设备时,加载此文件夹。
drawable-hapi:运行在密度为xxdpi的设备时,加载此文件夹。
-
这里我就用fruit 代替所有图片 把图片分别放在hdpi、ldpi、mdpi中,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/410f061971099d73fe2979713937bc9d)
而实际 我用两个模拟器是
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/b50482af07eee84475418f2449332965)
他们运行后的结果 不同 效果为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/14b918222fc72eb54ec40ec4013f4f85)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/34d7fcb6d36f445b8a31476b8a2e3aef)
3.什么是文字适配?
当手机语言为英文时,APP内的字符串显示英文
当手机语言为中文时,APP内的字符显示中文
第一步 ,在res里 创建一个 values-en 包;
第二步,在res里本身的String.xml 复制到创建的包内
第三步,修改里面的内容
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/34f85d7cdf9a36cde11ef3744220fb46)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/ed6992fa6345c8457fa8f43ff4edff1e)
在activity_main.xml里
代码:
效果如图:为系统为中文时:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/9183a92e2fb560b2c8001b52b3a2b26e)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/b8f00f7b19f42e803905da1e91b5d10d)
系统为英文时:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/3bbc7ebc73187ed9b35f1e569aba3c93)
![](https://img-blog.csdn.net/20180307222915940?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzEzNTU0ODU4MDQ=/font/5a6L5L2T<br/>4000<br/>/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
4.什么是布局适配?
在res下新增layout-land和layout-port文件夹,分别创建名为activity_main.xml的布局文件
为每个activity_main.xml编写不同内容,能够区分即可。
在Activity中setContentView(R.layout.activity_main.xml)。
在竖屏时,观察加载了哪个布局。
在横屏是,观察加载了哪个布局。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/d99f0f55fe7843c44878c6732c1f9f4d)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/0699e70f632755fabee1ced3fcaba445)
下面是运行后的横竖屏效果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/9e9512804342f405b22f12da7cd0d2c4)
在res下新建valus-960x540、values->1184x720文件夹,分别创建名为dimens.xml的文件。
为每个dimens.xml创建一个标签,name为app_width,值分别为100dp和800dp。
在activity_main.xml中创建一个Button,设置其宽度时,使用android:layout_width=”@dimen/app_width”.
分别在正常分辨率、960*540分辨率、1184*720分辨率下运行,观察Button的宽带变化。
分别在里面创建一个标签,name为app_width,值为100dp和800dp
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="app_width">500dp</dimen> </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="app_width">300dp</dimen> </resources>
第3步注意的是宽度时@dimen/app_width
这里我通过两个模拟器 分辨率分别是2016x1080和1920x1080
效果图对比
明显上一个按钮更长
2.什么是图片适配
drawable-hapi:运行在密度为hdpi的设备时,加载此文件夹。
drawable-hapi:运行在密度为ldpi的设备时,加载此文件夹
drawable-hapi:运行在密度为mdpi的设备时,加载此文件夹。
drawable-hapi:运行在密度为xdpi的设备时,加载此文件夹。
drawable-hapi:运行在密度为xxdpi的设备时,加载此文件夹。
-
这里我就用fruit 代替所有图片 把图片分别放在hdpi、ldpi、mdpi中,
而实际 我用两个模拟器是
他们运行后的结果 不同 效果为:
3.什么是文字适配?
当手机语言为英文时,APP内的字符串显示英文
当手机语言为中文时,APP内的字符显示中文
第一步 ,在res里 创建一个 values-en 包;
第二步,在res里本身的String.xml 复制到创建的包内
第三步,修改里面的内容
在activity_main.xml里
代码:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.xdw.myapplication.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="@string/app_title" android:textSize="45dp" android:gravity="center" /> </android.support.constraint.ConstraintLayout>
效果如图:为系统为中文时:
系统为英文时:
4.什么是布局适配?
在res下新增layout-land和layout-port文件夹,分别创建名为activity_main.xml的布局文件
为每个activity_main.xml编写不同内容,能够区分即可。
在Activity中setContentView(R.layout.activity_main.xml)。
在竖屏时,观察加载了哪个布局。
在横屏是,观察加载了哪个布局。
下面是运行后的横竖屏效果:
相关文章推荐
- 屏幕适配(布局、文字、图片、尺寸单位)
- Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸
- Android屏幕尺寸单位/屏幕适配
- android屏幕适配不同的资源图片、布局
- Android常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )尺寸单位转换和屏幕适配相关
- Android屏幕适配不同的资源图片、布局
- 堵你妹研究之二 一套资源图片完美适配ios五种屏幕的尺寸
- 深刻理解dp、px——代码布局使图片物理尺寸看上去一样大 vs 使图片占屏幕比例一样大
- react-native 屏幕尺寸和文字大小适配
- android中如何使用一张图片适配不同屏幕尺寸的APP启动引导页
- 适配不同尺寸屏幕之自动拉伸位图9.图片的使用
- Android屏幕适配不同的资源图片、布局
- Android 尺寸单位转换和屏幕适配相关
- Android 尺寸单位转换和屏幕适配相关
- 根据手机屏幕分辨率设置组件或控件的大小,利用像素更好的适配不同尺寸的机型的动态布局
- Android常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )尺寸单位转换和屏幕适配相关
- 屏幕图片及文字适配
- Android屏幕适配不同的资源图片和布局
- Android屏幕适配不同的资源图片、布局
- 根据屏幕宽高比适配文字大小 和 布局