`
1140566087
  • 浏览: 560158 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18563
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314510
Group-logo
J2ME 基础学习课程集
浏览量:18795
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17592
社区版块
存档分类
最新评论

Android 之 资源自适应与国际化

阅读更多

<!--
国际化和资源自适应

1、国际化:
根据不同国家不同的语言,开发出的软件能适应各种场合的使用,这种应用程序的界面语言和
风格随着android系统当前的语言环境变化而变化的技术成为国际化;


1.2、android 中的SDK 如何处理国际化:
对于字符串国际化,实际就是为应用程序提供不同语言的
字符串。当程序在运行时会检测当前的语言环境,再根据语言环境决定读取那种语言的字符串资源。
检查语言环境的任务由android系统负责完成,开发人员要做的是为保存各种语言的字符串资源
建立国际化目录,然后将相应的资源文件放到这些目录中。

1.3、国际化目录的规则如下:
资源目录+国际化配置选项

提示:
源目录指的是res目录中的子目录,如:values   / layout  / 等,国际化配置选项包含
很多部分,中间用  - 分隔;

注意:这些配置选项包含:语言代号和地区代号

例如:
表示中文和中国的配置选项为: zh-rCN
表示英文和美国的配置选项为:en-rUS

说明:
zh 和 en 表示中文和英文 ,
CN  US 表示中国和美国,r 是必须的;
可以单独指定语言,但是不能单独指定地区;

文件夹案例:
values-zh-rCN values-en-rUS 
drawable-zh-rCN drawable-en-rUS


1.4、提示:SDK 还支持很多其他配置选项,如果完全将这些配置选项加到资源目录后面,会有如下目录名:
drawable-en-rUS-large-long-port-mdpi-finger-keysexposed-qwerty-navexposed-dpad-480*320
  
1.5、//----------------- 在代码中 实现资源国际化  ------------
Resources resources = getResources(); // 获得res资源对象
Configuration config = resources.getConfiguration(); // 获得设置对象

//metrics 度量
DisplayMetrics dm = resources.getDisplayMetrics(); //获得屏幕参数,主要是分辨率,像素等;
config.locale = Locale.SIMPLIFIED_CHINESE; //简体中文
resources.updateConfiguration(config, dm);


1.6、小贴士:
可以再如下地址获取完整的语言和地区的配置选项
获取语言配置选项的地址:
http://www.loc.gov/standards/iso639-2/php/code_list.php
获取地区配置选项的地址:
http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html


1.7、Locale 与   国际化:
功能:除了使用资源目录处理国际化问题外,还可以使用Local对象获得当前的语言环境;
通过Local对象获得当前的语言环境,然后根据环境决定读取哪一个资源文件;
这种方式的资源文件是放在assets中的:
获取国家:Locale.getDefault().getCoutry();
获取语言:Locale.getDefault().getLanguage();


//----------------------------------------资源自适应----------------------------------------------
2、资源自适应:
根据android手机的当前运行环境自动选择相应的资源,由于手机的分辨率
屏幕方向等环境不同,造成在环境A中的资源可能在环境B中无法正常工作,或出现界面混
乱的情况。虽然可以采用技术处理,但是随着手机的环境不断增多,演变的情况是越来越
复杂了;

2.1:常用资源配置

2.2:屏幕相关概念:
* 分辨率:是指屏幕上横竖各有多少个像素;
* 屏幕尺寸:手机实际的物理尺寸:例如:2.8英寸  3.5 英寸 4.0 英寸
* android将屏幕大小分为四个级别:
small, normal , large, extralarge
* 屏幕密度:每英寸像素数;
提示:手机可以有相同的分辨率,但屏幕的尺寸可以不相同;

* DP == Diagonal pixel 表示对角像素值 = DPI = 933/3.7 = 252
提示:android 将实际的屏幕密度分为四个通用的尺寸:
low /medium /high /extra high
例如:一般情况下的普通屏幕:
ldpi==120dpi
mdpi==160dpi
hdpi==240dpi
xhdpi==320dpi
贴士:对于屏幕来说dpi值越大,屏幕的精细度越高,屏幕看起来也就越清楚

2.3:android多屏幕支持机制:
即为当前设备屏幕提供一种合适的方式共同管理并解析
应用资源。

2.4:android平台有自动匹配机制去选择对应的布局和图片资源:

2.5: 界面布局方面:
2.5.1:根据 {物理尺寸} 的大小准备5套布局:
layout : 存放一些通用的布局xml文件
layout-small : 屏幕尺寸小雨3英寸左右的布局;
layout-normal : 屏幕尺寸小于4.5英寸左右的布局
layout-large : 4英寸-7英寸之间
layout-xlarge : 7 英寸--10英寸之间

2.6: 图片资源方面:
2.6.1:需要根据dpi的值准备5套图片资源:
drawable : 主要放置xml配置文件或者对分辨率要求较低的图片
drawable-ldpi : 低分辨率的图片,如:QVGA (240*320)
drawable-mdpi : 中等分辨率的图片,如:HVGA (320*480)
drawable-hdpi : 高分辨率的图片,如:WVGA(480*800) FWVGA(480*854)
drawable-xhdpi : 至少 960dp*720dp

3、android 中的自适应机制:
<!-- 便于屏幕移植,增加的自动适配功能 -->
<supports-screens
android:largeScreens="true"   
android:normalScreens="true"
android:anyDensity="true" 
android:smallScreens="true"

/>
<!--
说明:
android:anyDensity="true"  
//是否支持多种不同密度的屏幕,如果false ,则系统自动缩放图片尺寸和这个图片的坐标;

android:largeScreens="true"   是否支持大屏幕,
.......

-->








分享到:
评论

相关推荐

    22.android 自适应屏幕

    11. **自适应国际化语言(22.1_android 自适应国际化语言)**: 使用`res/values/strings.xml`等不同语言的资源文件夹,实现应用的语言切换,满足全球用户的语言需求。 12. **多屏幕支持(22.2, 22.3, 22.4_...

    疯狂Android讲义源码

     6.11 国际化和资源自适应 251  6.11.1 Java国际化的思路 252  6.11.2 Java支持的语言和国家 252  6.11.3 完成程序国际化 253  6.11.4 为Android应用提供国际化  资源 255  6.11.5 国际化Android应用 256  ...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    6.11、国际化和资源自适应: 第7章、图形与图像处理 7.1、使用简单图片:Drawable; Bitmap、BitmapFactory; 7.2、绘图:Canvas; Paint; Path; 7.3、图形特效处理:使用Matrix控制变换; 使用drawBitmapMesh扭曲...

    Android/ophone开发完全讲义源代码

    全书分为五大部分,共二十五章,主要内容包括:Android应用程序架构,移动存储解决方案,Android服务,资源、国际化与自适应,Android平台的新特性展示,整合Android与脚本语言,JIL Widget开发详解等。... 这是该...

    android布局

    - **注意事项**:通常推荐从`strings.xml`文件中引用字符串资源,这样可以方便进行国际化处理。 - **示例**:`android:text="@string/hello_world"` #### 3. `android:gravity` - **功能**:指定子视图内容的对齐...

    Android代码-上下滚动选择器

    5. **多语言支持**:为了适应国际化需求,MyPickerView可能支持多语言显示,这需要处理字符串资源的加载和切换。 6. **性能优化**:为了保证流畅性,开发者可能会对滚动性能进行优化,例如使用懒加载策略,只在需要...

    android开发板笔记7

    同时,理解和利用Android资源,如字符串、图片、样式和布局,能提高代码的可维护性和国际化支持。 【新版Android开发教程+笔记十三(待续)--应用、permission、资源.pdf】这个文件可能提供了更深入的实践指导。它...

    Android代码-非常漂亮的滚动选择日期控件.zip

    4. **多语言支持**:考虑到国际化需求,控件可能支持多种语言的日期格式显示,如中文、英文等。 5. **自适应布局**:为了适应不同屏幕尺寸和方向,控件可能具有良好的响应式布局,能在横竖屏之间切换自如。 6. **...

    Android OPhone 开发完全讲义

    - **第13章 资源、国际化与自适应**:讨论如何优化应用的资源管理,支持多语言环境和不同屏幕尺寸。 - **第14章 访问Android手机的硬件**:指导如何控制摄像头、GPS等设备。 - **第15章 放在桌面上的小玩意**:...

    Android实例代码

    6.11、国际化和资源自适应: 第7章、图形与图像处理 7.1、使用简单图片:Drawable; Bitmap、BitmapFactory; 7.2、绘图:Canvas; Paint; Path; 7.3、图形特效处理:使用Matrix控制变换; 使用drawBitmapMesh扭曲...

    android控件解析

    - `android:text`:指定控件中显示的文本,推荐使用strings.xml文件中的字符串资源,以便于国际化和维护。 - `android:layout_width`和`android:layout_height`:设定控件的宽度和高度,可以是固定值或`wrap_content...

    Android自定义日历控件

    10. **国际化和本地化**:考虑到全球用户的使用,日历控件可能需要支持多种语言和日期格式。Android提供了强大的本地化支持,我们可以通过设置`res/values`目录下的`strings.xml`文件来实现。 综上所述,创建一个...

    android开发指南

    资源和国际化也是开发Android应用时需要考虑的,它涉及到多语言支持、地区格式化等。通过适当的资源管理和国际化支持,应用能够支持不同的语言和文化。 总结来说,Android开发指南提供了一个全面的框架,涵盖了从...

    Language.zip

    综上所述,"Language.zip"可能包含了实现Android应用语言国际化的代码示例,如动态切换语言的逻辑、资源文件的组织结构等。开发者需要对Android的资源管理系统和多语言支持机制有深入理解,才能有效地实现和维护应用...

    安卓字体使用多语言相关-Android设置整体app字体大小.rar

    在Android平台上,为应用设置整体字体大小以及支持多语言是一项重要的任务,这涉及到用户体验和国际化。这个压缩包文件“Android设置整体app字体大小.rar”很可能包含了一些示例代码或者资源,用于展示如何调整应用...

    android精美的日历控件

    7. **国际化与本地化**:支持多种语言,调整日期和星期的显示格式,以适应不同地区的用户。 8. **性能优化**:由于日历可能会显示大量的日期,所以需要关注内存占用和渲染性能,避免因数据量大导致的卡顿问题。 在...

    Android的UI界面编辑工具

    对于国际化应用,Android Studio支持多语言资源文件,布局编辑器会根据选定的语言显示相应的文本,方便开发者检查翻译效果。 9. **手势与交互** 除了静态的UI设计,布局编辑器还可以配置手势事件,如点击、滑动等...

Global site tag (gtag.js) - Google Analytics