`
亚当爱上java
  • 浏览: 707197 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android开发优化之——对界面UI的优化(1)

 
阅读更多

 

在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开 的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的 资源。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源码——UI界面源码.rar

    总的来说,学习并理解这个“Android源码——UI界面源码.rar”中的内容,对于深入理解Android UI开发、提升自定义界面能力具有很大的帮助。开发者可以通过阅读源码,学习如何高效地创建、管理和交互UI组件,进一步...

    安卓Android源码——UI界面源码.zip

    这个名为“安卓Android源码——UI界面源码.zip”的压缩包,很显然是一个包含Android用户界面(UI)相关源代码的资源集合。下面我们将详细探讨Android UI界面的构建原理以及可能包含的知识点。 1. **Android UI框架*...

    Android源码——UI界面源码.zip

    本资源“Android源码——UI界面源码.zip”包含了一些关于Android UI界面的源代码,帮助开发者深入理解Android UI的设计原理和实现机制。下面我们将详细探讨Android UI界面的相关知识点。 首先,Android UI主要基于...

    安卓Android源码——ui开发类库示例源码.zip

    本资源“安卓Android源码——ui开发类库示例源码.zip”提供了丰富的UI开发示例,帮助开发者更好地理解和应用各种UI类库。下面,我们将详细探讨这些知识点。 1. **Android UI组件**:Android SDK包含了多种内置的UI...

    安卓Android源码——奇艺高清UI界面源码.zip

    "安卓Android源码——奇艺高清UI界面源码.zip"是一个压缩包,其中包含了用于创建类似奇艺高清视频应用的UI设计的源代码。这个资源对于学习和理解如何在Android平台上构建高质量、高清晰度的UI具有很高的价值。 首先...

    安卓Android源码——奇艺高清UI界面源代码.zip

    "安卓Android源码——奇艺高清UI界面源代码.zip"提供了一个深入理解Android UI设计和实现的实例,特别关注了奇艺高清应用程序的界面。这个压缩包可能包含XML布局文件、Java代码、资源文件等,这些都能帮助开发者学习...

    Android开发笔记——UI基础编程

    这份"Android开发笔记——UI基础编程"的资料集包含了两部分:新版Android开发教程+笔记七--基础UI编程1.pdf和新版Android开发教程+笔记七--基础UI编程2.pdf,将深入讲解Android应用程序中用户界面的设计与实现。...

    安卓Android源码——360主界面UI.zip

    总之,分析360主界面UI的源码不仅可以让我们学习到Android UI设计和开发的高级技巧,也能帮助我们理解Android系统的底层原理,对于任何Android开发者来说,都是宝贵的学习资源。通过研究源码,我们可以借鉴其中的...

    Android源码——UI界面源码.7z

    本文将围绕"Android源码——UI界面源码.7z"这一主题,详细阐述Android UI界面背后的源码实现。 首先,Android UI基于一个名为"视图(View)"的层次结构,每个视图可以是一个按钮、文本框或其他可交互的元素。`View`类...

    Android源码——UI界面漂亮的天气预报源码.zip

    这篇内容将深入解析《Android源码——UI界面漂亮的天气预报源码》的相关知识点,主要涉及Android应用程序开发,尤其是用户界面(UI)设计和实现。在Android平台上,UI设计是提升用户体验的关键因素,而天气预报应用...

    [Android Studio应用开发——基础入门与应用实战][方欣,杨勃][电子课件]

    【Android Studio应用开发——基础入门与应用实战】是针对初学者和希望提升Android应用程序开发技能的人群设计的一门课程。这门课程由专家方欣和杨勃共同编写,旨在通过电子课件的形式,深入浅出地讲解Android ...

    Android源码——UI界面漂亮的天气预报源码.7z

    这篇文档将深入解析《Android源码——UI界面漂亮的天气预报源码》的相关知识点,主要涉及Android应用程序开发,尤其是用户界面(UI)设计和天气预报应用的实现。 首先,Android是Google开发的一种开源操作系统,...

    安卓Android源码——UI界面漂亮的天气预报源码.zip

    通过学习和理解这段代码,开发者可以了解到如何在Android应用中集成天气数据、创建动态的界面效果以及优化用户体验。 首先,源码中的图片文件"1-1210211040000-L.png"和"1_121021104233_1.png"很可能是应用界面的...

    安卓Android源码——Adroid UI 界面绘制原理分析.zip

    本资料"安卓Android源码——Adroid UI 界面绘制原理分析.zip"包含了一份详细分析Android UI界面绘制的文档,旨在帮助开发者深入理解这一过程。 首先,我们要了解Android UI的基础组件——视图(View)和视图组...

    解析Android开发优化之:对界面UI的优化详解(一)

    1)利用系统定义的id 比如我们有一个定义ListView的xml文件,一般的,我们会写类似下面的代码片段。 代码如下:&lt;ListView  android:id=”@+id/mylist”  android:layout_width=”fill_parent”  andro

    Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例

    在本章节中,“Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例”主要聚焦于Android应用程序开发中的一个实际应用场景——构建一个RSS阅读器。这个实例将帮助初学者理解如何将Android SDK的...

    安卓Android源码——QQ_UI之分类菜单.zip

    【安卓Android源码——QQ_UI之分类菜单】这个压缩包主要包含了关于安卓应用程序开发中,QQ用户界面(UI)设计的分类菜单实现的源代码和相关资源文件。在这个项目中,开发者可以学习到如何在Android平台上创建类似QQ...

    安卓Android源码——花姑娘之部分UI源码.zip

    【标题】"安卓Android源码——花姑娘之部分UI源码.zip" 提供的是与Android操作系统用户界面相关的源代码,这个压缩包可能是针对Android UI组件或界面设计的一个学习资源。通过对这些源码的研究,开发者可以深入理解...

Global site tag (gtag.js) - Google Analytics