Android自适应屏幕方向、大小和分辨率,及字体设置

屏幕大小

1、不同的layout

Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在 res目录下创建不同的layout文件夹,比如:layout-640x360,layout-800x480,所有的layout文件在编译之后都会 写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

2、hdpi、mdpi、ldpi

之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。

drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:

  1. drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
  2. drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
  3. drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)

系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

屏幕方向

1、横屏竖屏自动切换

可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。

2、禁用自动切换

只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。

  • Android:screenOrientation="landscape"  //是限制此页面横屏显示
  • Android:screenOrientation="portrait"      //是限制此页面数竖屏显示

字体自适应大小

方法1:

首先根据不同分辨率获取不同字体大小。 
在RES里创建
values-480x320/strings.xml 里面设置<dimen name="Text_size">30px</dimen>
和 
values-800x400/strings.xml 里面设置<dimen name="Text_size">30px</dimen>

分别代表480X320 和 800X400分辨率情况下 字号为30px和40px;

在java文件中这样调用

int sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size);

方法2:

在视图的 onsizechanged里获取视图宽度,一般情况下默认宽度是320,所以计算一个缩放比率rate = (float) w/320   w是实际宽度
然后在设置字体尺寸时 paint.setTextSize((int)(8*rate));   8是在分辨率宽为320 下需要设置的字体大小实际字体大小 = 默认字体大小 x  rate

时间: 2024-08-05 17:21:40

Android自适应屏幕方向、大小和分辨率,及字体设置的相关文章

android自适应屏幕方向和大小

一:不同的layout Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?    其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用. 二:hdpi.mdpi.ldpi 在之前的版本中,只有一个drawable,而2.1版本中有drawa

Android自适应屏幕分辨率与国际化

一.当横屏切换成竖屏时,解决的办法: 在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,当手机屏幕方向变化的时android系统会自动调用相应的布局文件. 当然还有办法就是不切换.要么都是横屏或者要么都是竖屏.可以在AndroidManifest.xml文件中设置, 比如某个Activity设置为android:screenOrientation="portrait" 这样就一直保持竖屏, 如果设置为 android:scre

Android screenOrientation 屏幕方向的设定与控制

AndroidManifest.xml中Activity标签中的设定值: android:screenOrientation="landscape"为90度(横屏) android:screenOrientation="reverseLandscape"为270度(反向横屏) android:screenOrientation="sensorLandscape"为90度和270度根据G-sensor切换(横屏切换) android:screenO

android之屏幕方向切换

今天看到andoird屏幕的切换,因为在游戏中切换横向时非常正常的一件事. 首先如果我们不想切换方向那么我们可以在androidmainfest.xml中对activity的属性进行添加. android:sreenOrientation 属性值 portrait表示垂直 landscape表示水平 但是我不想这么做,我添加水平和垂直按钮实现屏幕的切换. 添加两个按钮,在监听函数中实现 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION

Android Studio 屏幕方向以及UI界面状态的保存

package com.example.orientation; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity ext

Android获取屏幕尺寸大小

官方API: A structure describing general information about a display, such as its size, density, and font scaling. To access the DisplayMetrics members, initialize an object like this:  DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().g

Android获取屏幕分辨率及DisplayMetrics

DisplayMetrics简介: Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局变形问题. Android 提供DisplayMetircs 类可以很方便的获取分辨率.Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小, 分辨率和字体. 为了获取DisplayMetrics 成员,首先初始化一个对象如下: DisplayMetrics metrics =newD

Android获取屏幕分辨率及DisplayMetrics简介

Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局变形问题. 手机的分辨率信息是手机的一项重要信息,很好的是,Android 已经提供DisplayMetircs 类可以很方便的获取分辨率.下面简要介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体. 为了获取DisplayMetrics 成员,首先初始化一个对象如

终结者:电脑显示Android手机屏幕之asm.jar工具正确的使用方法

1.asm.jar的作用: 提到asm.jar的作用,那么最显著的莫过于计算机显示Android手机屏幕了:其次可以调整计算机上显示Android手机屏幕的大小(好多人都没有发现这个功能):再者可以选择不同的显示的Android手机设备:还可以设置手机显示屏幕的方向:还可以截取手机的屏幕:等等等. 2.下载asm.jar: 网上下载asm.jar的链接有很多,但需要说明的是有一些是病毒,这里提供一个安全的下载链接地址(下载下来的压缩文件不仅包含了asm.jar,而且还有其实现的源码):http: