问题一:什么是屏幕适配
通过对尺寸单位 图片 文字 布局 这4种类型资源源进行合理设计及规划,在布局是合理利用各种类型资源,让布局拥有适应能力,能在各种设备下保持良好的展现效果。
问题二:如何进行屏幕适配
对于实现屏幕适配我们要从 4个问题入手
1.如何尺寸单位适配
2.如何图片适配
3.如何文字适配
4.如何布局适配
对于尺寸单位适配 我们首先要知道屏幕分辨率,屏幕分辨率是指在屏幕上横*纵方向上的像素点数。单位是px,1px=一个像素点,一般以纵向像素*横向像素表示。
关于尺寸单位的适配如下图所示:
第一列 dpi 缩放比例
ldpi 120 0.75
mdpi 160 1
hdpi 240 1.5
xhdpi 320 2
xxhdpi 480 3.0
第一步在Android模式打开项目,之后再res文件夹点击右键选择New 然后选择Directory命名两个为values-960x540和 values-1500x1200的文件夹
第二步切换模式为package模式选择之前命名的文件夹,创建文件为dimens-xml文件(创建之后文件在values中,所以我们剪切到自己创建的文件夹下)之后代码为
<resources>
<dimen name="app_width">200dp</dimen>
</resources>
至于两个创建文件的区别就是一个为200dp 一个为800dp 其他的一样
第三步 在activity_main_xml代码为
<Button
android:layout_width="@dimen/app_width"
android:layout_height="wrap_content"
android:text="你好" />
至于之后的效果图如下由于不同手机所以展示的效果也不同 效果如下关于图片适配 我们首先要了解为什么要图片适配
根据不同密度的手机,可以分别设计不同尺寸的图片放置在对应密度的文件夹中,Android系统会根据当前运行的设备密度自动加载对应的文件夹的图片
第一步在package模式中mipmap-hadpi mipmap-mdpi mipmap-xhdpi中添加名字为一样的不用图片
第二步在activity_main_xml代码为
<LinearLayout 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"
android:background="@mipmap/df"
tools:context="com.example.zhan.myapplication.MainActivity">
<Button
android:layout_width="@dimen/app_width"
android:layout_height="wrap_content"
android:text="你好" />
</LinearLayout>
使用不同的模拟器屏幕得出不同的图片如下:
这就是图片适配
关于文字适配因为字符串的国际化我们 也要为文字指定 当手机为英文是我们app的文字就要为为英文 其他的语言一样
第一步在package下添加一个为values-en的文件夹,之后将values的strings复制到values-en中代码如下 下面为中文的代码默认的代码
<resources>
<string name="app_name">My Application</string>
<string name="title">hello </string>
</resources>
<resources>
<string name="app_name">My Application</string>
<string name="title">你好</string>
</resources>
之后的结果为有中英文对比图
最后关于布局适配的步骤
第一步在Andorid下添加一个为layout-land的文件夹
第二步在package中将layout的代码发知道layout-land只要将背景改变一下但是背景图片依然要和竖屏图片放在一个文件夹
代码为
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@mipmap/fgr"
tools:context="com.example.zhan.myapplication.MainActivity">
<Button
android:layout_width="@dimen/app_width"
android:layout_height="wrap_content"
android:text="@string/title" />
</LinearLayout>
效果图为下面
这就是关于屏幕适应的不同方法该如何解决的方法