`
- 浏览:
547654 次
- 性别:
- 来自:
武汉
-
<!--
国际化和资源自适应
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" 是否支持大屏幕,
.......
-->
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Android支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。本文就介绍了4中Android屏幕自适应解决方案。 一、细说layout_weight 目前最为推荐的Android多屏幕自适应解决方案。 该...
Android TextView 去掉自适应默认的fontpadding的实现方法 最近在项目中使用textview时发现在使用Android:layout_height=”wrap_content”这个属性设置后,textview会有默认的padding,也就是fontpadding。这样就会...
当宽度一定时,如满屏,高度自适应 Android代码 继承自imageView
width=100%就可以使得图片宽度充满屏幕,高度自适应
自适应二值化的代码,java形式,可以用在imagej等支持java的图像处理平台。
android自定义dialog嵌套listview自适应屏幕
基于android屏幕的自适应的布局方式。
基于opencv的自适应二值化,用于文字识别的第一步
图像自适应二值化MATLAB程序,阈值根据统计来定。
android 自适应屏幕 翻转 网络转发 共享给初学者
基于Labview的实时采集图像并进行自适应二值化程序,直接调用电脑的摄像头实时采集图像,进行灰度处理得到灰度图,再对灰度图进行自适应二值化处理,有5种常用的算法可供选择来自动设置图像的二值化阀值。...
A layout engine for Android that decouples layouts from the View containers that manage scrolling and view recycling. FreeFlow makes it really easy to create custom layouts and beautiful transition ...
自适应数据可视化展示
这个是android屏幕自适应的例子,可以在360x480,480x800 480x854 640x360分辨率,是自适应的,不会因为屏幕图片发上变化!
android应用自适应多分辨率的解决方法
Android字体大小自适应不同分辨率的解决办法 今天有人问我,Android系统不同分辨率,不同大小的手机,字体大小怎么去适应呢?其实字体的适应和图片的适应是一个道理的。 一、原理如下: 假设需要适应320×240,480...
Android自适应分辨率,让程序自动适应屏幕大小
2、Android的三种基本自适应方式;3、一点点必要的代码展现。个人认为还是很不错的,虽然不是什么开发的核心东西,但是在我们开发android过程中却都是要必须面对的问题。希望这份资料能帮助到你。呵呵
多业务异构网络资源自适应分配,基于多用户的多业务的异构网络资源分配,分别用模拟退火算法和遗传算法实现自适应分配,并用MATLAB仿真实现。
AutoFitTextView A TextView that automatically fit its font and line count based on its available size and content This code is heavily based on this StackOverflow thread. The sample shows how the ...