博客
关于我
android res目录
阅读量:798 次
发布时间:2023-04-04

本文共 2440 字,大约阅读时间需要 8 分钟。

Android开发中的资源目录设置是一个非常重要的配置步骤,尤其是在处理不同屏幕分辨率和多语言支持时,资源目录的结构和管理至关重要。以下是关于Android资源目录的详细说明,包括drawable、layout、values等目录的使用方法。

1. drawable目录相关

在Android项目创建后,res目录下会自动生成多个drawable子目录,分别对应不同的屏幕分辨率。这些目录包括drawable-hdpi、drawable-mdpi、drawable-ldpi、drawable-xhdpi、drawable-xxhdpi等。每个目录下存放的图片文件根据屏幕分辨率不同,需要使用不同的图片尺寸。

  • drawable-hdpi:对应的屏幕分辨率为WVGA(480x800)和FWVGA(480x854),适用于高分辨率屏幕。
  • drawable-mdpi:对应的分辨率为HVGA(320x480),适用于中等分辨率屏幕。
  • drawable-ldpi:对应的分辨率为QVGA(240x320),适用于低分辨率屏幕。
  • drawable-xhdpi:对应的分辨率为320x480,适用于高分辨率屏幕。
  • drawable-xxhdpi:对应的分辨率为480x320,适用于超高分辨率屏幕。

需要注意的是,xhdpi和xxhdpi目录是从Android 2.2和2.3开始支持的,而tvdpi则是较为新的添加。开发者在布局设计时,应根据屏幕分辨率选择合适的drawable目录下的图片,以确保界面显示效果符合预期。

2. layout目录相关

在Android中,为了适应不同屏幕分辨率,开发者有三种主要方法来处理布局:

  • 代码实现布局:通过动态调整布局参数,根据屏幕尺寸和分辨率进行适应。
  • 多个layout文件:在res目录下创建不同分辨率的layout文件夹,例如layout-640x360和layout-800x480,并在编译时将这些文件添加到R资源中。系统会根据屏幕尺寸自动选择合适的布局文件。
  • 使用layout_weight属性:通过设置layout_weight属性来实现多个布局的自适应显示,但这在布局较复杂时可能难以控制。
  • 普通情况下的布局适配

    在大多数情况下,只需在res目录下创建不同分辨率的layout文件夹。例如,创建layout-640x360和layout-800x480文件夹,编译后这些文件会被添加到R资源中。系统会根据当前屏幕的分辨率自动选择合适的布局文件进行使用。

    横竖屏自动切换

    在处理横屏和竖屏时,可以通过以下方式实现自动切换:

    • 创建两个layout文件夹:layout-port-800x600和layout-land-800x600,分别存放竖屏和横屏对应的布局文件。这样系统会根据屏幕方向自动选择相应的布局文件。
    • 需要注意的是,每个activity都需要设置screenOrientation属性,可以设置为“portrait”(竖屏)或“landscape”(横屏)。为了保持界面固定方向,可以在AndroidManifest.xml中设置screenOrientation属性,例如设置为“landscape”以保持横屏方向。

    多分辨率支持

    对于支持多分辨率的设备,可以通过以下方式实现字体大小和布局的自适应:

    • 在res目录下创建不同的values文件夹,例如values-320x240和values-480x320。每个文件夹下创建dimens.xml文件,定义不同的字体大小和布局参数。
    • 在布局文件中引用这些自定义参数,例如在TextView中使用 android:textSize="@dimen/btnTextSize",这样可以根据不同分辨率自动调整字体大小。

    3. values目录相关

    values目录是Android项目中的默认资源目录,主要用于存放文本、样式和字体资源。

    多语言支持

    要实现多语言支持,可以按照以下步骤操作:

  • 在res目录下创建一个values文件夹,例如values-zh-rCN(中文中国)。
  • 使用Android Studio的“新建Android XML文件”功能,创建一个string.xml文件,指定语言包名(如zh-rCN),并添加所需的字符串资源。
  • 将生成的string.xml文件复制到对应语言包的values文件夹下,例如res/values-zh-rCN/string.xml。
  • 修改string.xml文件,添加具体的语言内容。
  • 通过这种方式,可以实现多语言支持。例如,中文(中国)可以使用values-zh-rCN目录,中文(台湾)使用values-zh-rTW,英语(美国)使用values-en-rUS,等等。

    多分辨率字体自适应

    为了实现不同分辨率下的字体自适应,可以按照以下步骤操作:

  • 在res目录下创建不同分辨率的values文件夹,例如values-320x240和values-480x320。
  • 在每个文件夹下创建dimens.xml文件,定义不同分辨率下的字体大小和其他布局参数。
  • 在布局文件中引用这些自定义参数,例如在TextView中使用 android:textSize="@dimen/btnTextSize"。
  • 通过这种方式,可以实现不同分辨率下的字体大小和布局参数自动适应。

    4. values-v11和values-v14文件夹

    在Android 3.0(API 11)和Android 4.0(API 14)及以上版本中,values-v11和values-v14目录用于提供平台特定的样式和主题资源。通过在这些目录下添加styles.xml文件,可以定义特定平台版本的样式和主题设置,从而实现跨平台兼容性。

    总之,通过合理配置资源目录和文件,可以实现Android应用程序的多分辨率、多语言和多平台支持,提升应用程序的适用性和用户体验。

    转载地址:http://hcrfk.baihongyu.com/

    你可能感兴趣的文章
    mysql中null和空字符串的区别与问题!
    查看>>
    MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
    查看>>
    MYSQL中TINYINT的取值范围
    查看>>
    MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
    查看>>
    Mysql中varchar类型数字排序不对踩坑记录
    查看>>
    MySQL中一条SQL语句到底是如何执行的呢?
    查看>>
    MySQL中你必须知道的10件事,1.5万字!
    查看>>
    MySQL中使用IN()查询到底走不走索引?
    查看>>
    Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
    查看>>
    MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
    查看>>
    mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
    查看>>
    mysql中出现Unit mysql.service could not be found 的解决方法
    查看>>
    mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
    查看>>
    Mysql中各类锁的机制图文详细解析(全)
    查看>>
    MySQL中地理位置数据扩展geometry的使用心得
    查看>>
    Mysql中存储引擎简介、修改、查询、选择
    查看>>
    Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
    查看>>
    mysql中实现rownum,对结果进行排序
    查看>>
    mysql中对于数据库的基本操作
    查看>>
    Mysql中常用函数的使用示例
    查看>>