继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于Android资源选择器的详细教程

繁星淼淼
关注TA
已关注
手记 298
粉丝 44
获赞 264

1。资源和Android设备配置情况
Android设备在尺寸上有多种不同的配置,屏幕像素密度、语言设置,等 Android支持资源拟合自动选择设备配置。

为此,你提供不同的资源在预定义的子文件夹中目录名称的后缀文件夹中定义的配置,它是有效的装置,如定向、分辨率、语言。

1.1。重要的资源限定符
1.1.1。屏幕密度
Android设备的屏幕是不同的分辨率和像素密度的屏幕上。 例不同屏幕长度密度相同的用户界面组件是由不同数量的。

例如,如果您指定的像素,你可以得到以下一个像素相对低一些的设备的结果。

Device Independent pixels on low resolution devices

使用相同的像素数与像素越多的设备可能导致无法使用的图形用户界面。

Device independent pixels on low resolution devices

因为这个原因,你应该提供图形化的资源,例如,不同分辨率的研究和行动栏图标。 这可以通过使用基于像素是资源限定符。

你可以用密度为资源限定符。 Android支持下列选择。 基线为160点每英寸(dpi)。 比如Android设备有320的DPI,drawable hdpi选择。

1.1.3。使用定位资源限定符
假设,例如,你想用一种特殊的布局在景观模式活动,布局文件称为activity_main.xml在这种情况下,你创建的。 RES /布局的土地文件夹,把新的布局文件具有相同的名称(activity_main.xml在这个文件夹)。

1.1.4。qualifiers Android版本
一个典型的选择中使用你的应用,是基于Android版本的选择,这是基于v [最低API级别]预选赛。 为例,这种方式可以提供不同的风格和主题,基于Android的API。

使用此修饰符的典型例子是定义基于Android版本的造型。

1.1.5。宽度和高度相关的预选赛
另一个典型的选择是最小的可用宽度选择或有效宽度 选择。最小的可用宽度最短的屏幕的高度和有效宽度基于设备的定位的实际宽度。

宽度的选择,例如,用于提供基于装置的宽度不同的布局。 这种选择的基础[数] DP -西南(最小)或[ ] W号的DP预选赛中,在[数]为设备独立像素数。 例如,一7inch片通常有至少为600dp,你通过它可以提供布局res/layout-sw600dp/选择器。

1.1.6。更多的资源限定符
其他资源限定在以下网页描述。

http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

1.2。translations鸭。
1.2.1。translations鸭。
你也可以使用你的资源选择器价值观包含,例如文件夹,你 使用字符串值。值限定符这个文件夹。

1.2.2。plurals
Android支持复数。 复数是基于XML的资源可以处理不同的数量。 这样你对文字的基础上可以选择的数量。 在XML文件指定的值的数量“零”、“一”、“二”、“多”、“少”、“多”、“其他”和你的代码getquantitystring(的)为了得到正确的值的方法。 你也可以格式化字符串。 如果字符串格式化然后你通过在多个资源的数量。 如果对象应该用你把这些格式化。

<?xml version="1.0" encoding="utf-8"?><resources>
    <plurals
        name="tutorials">
        <item quantity="zero">no Tutorial </item>
        <item quantity="one">one Tutorial </item>
        <item quantity="other">%d  Tutorials</item>
    </plurals></resources>

例如,以下将定义一个复数。 这个文件需要在“资源/值”目录,在这个例子中它被称为“复数。

// number is defined somewhere before this// number =....// get the ResourcesResources res = getResources();// get theString quantityString = res.getQuantityString(R.plurals.tutorials,
    number, number);// do something with it...

值得注意的是,选择是基于语法的必要性了。零字符串 英语会忽视甚至如果数量是0,因为0是不同于没有语法2,除了任何数量或其他1(“教程”,“教程”、“两课”,等等。

2.1。固定或相对尺寸
Android允许你定义在固定或相对尺寸在布局文件的用户界面组件的尺寸。尺寸在你的Android 总是使用相关的应用,这可以让你的用户界面以适应实际的设备。

2.2。使用DP的相对尺寸
测量应使用单位DP。

DP是短暂的浸设备独立像素)。
DP是指一个像素一个160dpi Android设备(每英寸点数)。 这个密度的第一个可用的Android设备(G1)。 这个尺寸也被媒体点asmdpi(每。

如果您指定的大小DP,Android自动缩放用户界面组件,根据不同的设备。

在MDPI(又称中密度)装置DP作为一 像素相同。DP在检测(低密度)装置较小(约120dip),在华电国际(高密度)装置较大(约240dpi)。 因此DP大约占每个设备上的同一个物理空间。

你可以使用DP在你的资源,例如,布局文件。

2.3。采用SP规模与用户文本偏好
如果单位应与用户文本偏好设置规模,选择服务提供商计量单位。 本单元类似于DP,但它是按用户也。

如果用户选择增加此设置字体大小,视图的使用服务提供商相应地调整。

2.4。定义在源代码的UI组件的大小
Android API经常要求您指定一个像素的大小和不接受DP作为输入。 在这种情况下,你需要改变你的DP为实际的像素。

你可以使用下面的方法来为维度指定的像素的量计算DP。

public int convertToPixelFromDp(int dpInput) {    // get the screen's density scale
    final float scale = getResources().getDisplayMetrics().density;    // convert the dps to pixels, based on density scale
    return (int) (dpInput * scale + 0.5f);
}

可以用下面的方法调用查询当前设备的密度。

getresources()。getconfiguration()。densitydpi

原文链接:http://www.apkbus.com/blog-914653-76550.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP