天天看点

屏幕适配(尺寸单位、图片、文字、布局)

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的宽带变化。
    屏幕适配(尺寸单位、图片、文字、布局)
    屏幕适配(尺寸单位、图片、文字、布局)
    分别在里面创建一个标签,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)。
  • 在竖屏时,观察加载了哪个布局。
  • 在横屏是,观察加载了哪个布局。
    屏幕适配(尺寸单位、图片、文字、布局)
    屏幕适配(尺寸单位、图片、文字、布局)
    下面是运行后的横竖屏效果:
    屏幕适配(尺寸单位、图片、文字、布局)
    屏幕适配(尺寸单位、图片、文字、布局)