温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用Android系统资源

发布时间:2021-12-18 16:52:39 来源:亿速云 阅读:197 作者:iii 栏目:移动开发

这篇文章主要讲解了“如何利用Android系统资源”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用Android系统资源”吧!

1)利用系统定义的id

比如我们有一个定义ListView的xml文件,一般的,我们会写类似下面的代码片段。

<ListView      android:id="@+id/mylist"      android:layout_width="fill_parent"      android:layout_height="fill_parent"/>

这里我们定义了一个ListView,定义它的id是"@+id/mylist"。实际上,如果没有特别的需求,就可以利用系统定义的id,类似下面的样子。

<ListView      android:id="@android:id/list"      android:layout_width="fill_parent"      android:layout_height="fill_parent"/>

在xml文件中引用系统的id,只需要加上“@android:”前缀即可。如果是在Java代码中使用系统资源,和使用自己的资源基本上是一样的。不同的是,需要使用android.R类来使用系统的资源,而不是使用应用程序指定的R类。这里如果要获取ListView可以使用android.R.id.list来获取。

2)利用系统的图片资源

假设我们在应用程序中定义了一个menu,xml文件如下。

<?xml version="1.0" encoding="utf-8"?>  <menu xmlns:android="http://schemas.android.com/apk/res/android">      <item          android:id="@+id/menu_attachment"          android:title="附件"          android:icon="@android:drawable/ic_menu_attachment" />  </menu>

其中代码片段android:icon="@android:drawable/ic_menu_attachment"本来是想引用系统中已有的Menu里的“附件”的图标。但是在Build工程以后,发现出现了错误。提示信息如下:

error: Error: Resource is not public. (at 'icon' with value '@android:drawable/ic_menu_attachment').

从错误的提示信息大概可以看出,由于该资源没有被公开,所以无法在我们的应用中直接引用。既然这样的话,我们就可以在Android  SDK中找到相应的图片资源,直接拷贝到我们的工程目录中,然后使用类似android:icon="@drawable/ic_menu_attachment"的代码片段进行引用。

这样做的好处,一个是美工不需要重复的做一份已有的图片了,可以节约不少工时;另一个是能保证我们的应用程序的风格与系统一致。

经验分享:

Android中没有公开的资源,在xml中直接引用会报错。除了去找到对应资源并拷贝到我们自己的应用目录下使用以外,我们还可以将引用“@android”改成“@*android”解决。比如上面引用的附件图标,可以修改成下面的代码。

android:icon="@*android:drawable/ic_menu_attachment"

修改后,再次Build工程,就不会报错了。

3)利用系统的字符串资源

假设我们要实现一个Dialog,Dialog上面有“确定”和“取消”按钮。就可以使用下面的代码直接使用Android系统自带的字符串。

<LinearLayout         android:orientation="horizontal"         android:layout_width="fill_parent"          android:layout_height="wrap_content">         <Button             android:id="@+id/yes"              android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_weight="1.0"             android:text="@android:string/yes"/>         <Button             android:id="@+id/no"              android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_weight="1.0"             android:text="@android:string/no"/>     </LinearLayout>

如果使用系统的字符串,默认就已经支持多语言环境了。如上述代码,直接使用了@android:string/yes和@android:string/no,在简体中文环境下会显示“确定”和“取消”,在英文环境下会显示“OK”和“Cancel”。

4)利用系统的Style

假设布局文件中有一个TextView,用来显示窗口的标题,使用中等大小字体。可以使用下面的代码片段来定义TextView的Style。

<TextView          android:id="@+id/title"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:textAppearance="?android:attr/textAppearanceMedium" />

 其中android:textAppearance="?android:attr/textAppearanceMedium"就是使用系统的style。需要注意的是,使用系统的style,需要在想要使用的资源前面加“?android:”作为前缀,而不是“@android:”。

5)利用系统的颜色定义

除了上述的各种系统资源以外,还可以使用系统定义好的颜色。在项目中最常用的,就是透明色的使用。代码片段如下。

android:background ="@android:color/transparent"

经验分享:

Android系统本身有很多资源在应用中都可以直接使用,具体的,可以进入android-sdk的相应文件夹中去查看。例如:可以进入$android-sdk$\platforms\android-8\data\res,里面的系统资源就一览无余了。

开发者需要花一些时间去熟悉这些资源,特别是图片资源和各种Style资源,这样在开发过程中,能够想到有相关资源并且直接拿来使用。

感谢各位的阅读,以上就是“如何利用Android系统资源”的内容了,经过本文的学习后,相信大家对如何利用Android系统资源这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI