`
56858752
  • 浏览: 61241 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android2.2-2.3锁屏分析(二)-布局分析

 
阅读更多

ROM之家

 

上一节对锁屏幕进行大致的介绍。

 

http://mofan.iteye.com/blog/1586016

 

这节来分析整个界面的布局。先上图:

 

 

分析文件(以竖屏为例):frameworks\base\core\res\res\layout\keyguard_screen_tab_unlock.xml

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tabunlock="http://schemas.android.com/apk/res/com.android.tabunlock"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#70000000"
    android:gravity="center_horizontal"
    android:id="@+id/root">

    <TextView
        android:id="@+id/carrier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="10dip"
        android:layout_marginRight="8dip"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:gravity="right|bottom"
        android:textAppearance="?android:attr/textAppearanceMedium"
        />

    <!-- "emergency calls only" shown when sim is missing or PUKd -->
    <TextView
        android:id="@+id/emergencyCallText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/carrier"
        android:layout_alignParentRight="true"
        android:layout_marginTop="0dip"
        android:layout_marginRight="8dip"
        android:text="@string/emergency_calls_only"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white"
       />

    <!-- time and date -->
    <com.android.internal.widget.DigitalClock android:id="@+id/time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/carrier"
        android:layout_marginTop="52dip"
        android:layout_marginLeft="20dip"
        android:layout_marginBottom="8dip"
        >

        <TextView android:id="@+id/timeDisplay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:ellipsize="none"
            android:textSize="72sp"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:shadowColor="#C0000000"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="3.0"
            android:layout_marginBottom="10dip"
            />


        <TextView android:id="@+id/am_pm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/timeDisplay"
            android:layout_alignBaseline="@id/timeDisplay"
            android:singleLine="true"
            android:ellipsize="none"
            android:textSize="22sp"
            android:layout_marginLeft="8dip"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:shadowColor="#C0000000"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="3.0"
            />

    </com.android.internal.widget.DigitalClock>

    <TextView
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/time"
        android:layout_marginLeft="24dip"
        android:textAppearance="?android:attr/textAppearanceMedium"
        />

    <TextView
        android:id="@+id/status1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/date"
        android:layout_marginTop="4dip"
        android:layout_marginLeft="24dip"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:drawablePadding="4dip"
        />

    <TextView
        android:id="@+id/status2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/status1"
        android:layout_marginTop="4dip"
        android:layout_marginLeft="24dip"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:drawablePadding="4dip"
        />

    <TextView
        android:id="@+id/screenLocked"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/status2"
        android:layout_marginLeft="24dip"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_marginTop="12dip"
        android:drawablePadding="4dip"
        />

    <com.android.internal.widget.SlidingTab
        android:id="@+id/tab_selector"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="80dip"
        />

    <!-- emergency call button shown when sim is PUKd and tab_selector is
         hidden -->
    <Button
        android:id="@+id/emergencyCallButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_emergency"
        android:layout_centerInParent="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="80dip"
        style="@style/Widget.Button.Transparent"
        android:drawablePadding="8dip"
        android:visibility="gone"
        />

</RelativeLayout>

 

上面是android2.3源代码。

 

@+id/carrier:显示运营商信息,没有插入SIM卡时显示“没有SIM卡”,没有信号时会显示“(无服务)”

 

@+id/emergencyCallText:固定字符串。“只能使用紧急呼叫”,在没有插入SIM卡时显示。

 

@+id/time:显示时间信息,包括12和24小时制。这里是单独写了一个ViewGroup,后面会专门介绍。

 

@+id/date:显示日期信息,包括星期。如果需要修改格式,请在对应语言的donottranslate-cldr.xml文件中找到需要的格式

 

@+id/status1、@+id/status2:分别显示充电、闹钟信息。

 

@+id/screenLocked:暂未涉及

 

@+id/tab_selector:滑动解锁,后面单独介绍

 

@+id/emergencyCallButton:紧急拨号按钮。当没有插入SIM卡时显示。

 

 

这里可以对布局进行任意修改,但建议不要修改ID名称,因为上面所显示的都是常用的信息,一般手机都会包括这些。如果确实要删除,请先确定别的类中是否有包含这些控件。比如打电话和接电话界面。

 

还有一点请注意,这里如果删除或者新增控件,需要全部编译,不能只编译framework层代码。具体什么原因暂时未找到。

分享到:
评论

相关推荐

    Android代码-一键锁屏

    在Android平台上,开发一款“一键锁屏”应用是一项常见的任务,它可以帮助用户快速锁定设备,提高操作效率。这里我们探讨的“Android代码-一键锁屏”项目,从其标题和描述来看,它应该是一个用于创建此类功能的源...

    Android待机流程分析---锁屏、解锁模块.

    ### Android待机流程分析——锁屏、解锁模块 在深入探讨Android系统中锁屏与解锁模块的工作原理之前,我们先来了解一下这些概念的基本背景。Android操作系统作为全球最广泛使用的移动设备操作系统之一,其用户界面...

    Android代码-安卓锁屏和恢复出厂设置功能.rar

    【标题】"Android代码-安卓锁屏和恢复出厂设置功能.rar"主要涵盖了两个核心知识点:Android系统的锁屏机制以及设备的恢复出厂设置功能。在Android系统中,这两部分是用户体验和设备安全管理的重要组成部分。 首先,...

    Android代码-一键锁屏功能源码.zip

    在Android平台上,开发一款应用实现一键锁屏功能是常见的需求,尤其对于那些希望快速锁定设备以保护隐私或节省电量的用户。本压缩包文件“Android代码-一键锁屏功能源码.zip”提供了一个完整的实现这一功能的源码...

    lockscreen for android 2.2

    《Android 2.2锁屏应用详解》 在Android操作系统中,锁屏界面是用户与设备交互的第一道关卡,它不仅提供了设备的安全保护,也是展现个性化和用户体验的重要环节。针对Android 2.2(Froyo)版本,有一款特别设计的...

    android-slide-to-unlock 锁屏效果.zip

    android-slide-to-unlock 锁屏效果,这是一个模仿苹果"slide to unlock"动画的demo应用。 代码比较简单,就是用android自带的着色器shader去drawText,根据不同的参数, 设置着色器不同的着色位置。

    android-slide-to-unlock 锁屏效果

    下面我们将详细探讨这个锁屏效果的实现原理、涉及到的关键技术以及源码分析。 1. **滑动解锁基本原理**: - 用户界面:通常包含一个可滑动的指示条,用户通过手指在屏幕上从左到右或从下到上滑动来解锁。 - ...

    Android项目实战--手机卫士11--锁屏操作与恢复出厂模式

    2. **自定义锁屏界面**:创建一个新的Activity或Fragment作为锁屏界面,并设计相应的UI布局。可以使用XML布局文件来定义按钮、输入框等元素。 3. **处理用户输入**:监听用户的解锁尝试,例如数字密码、图案解锁或...

    Android代码-锁屏应用。

    Android LockScreenSample Using Service - Disable HomeButton Key Event LockScreenSample use Android Service. So, Ignores HomeButton Key Event. Download Current version: [1.0.2] Gradle: compile '...

    Android高级应用源码-一键锁屏功能源码.rar

    在Android平台上,开发一款具有“一键锁屏”功能的应用是一个常见的需求,可以帮助用户快速锁定屏幕,提高设备的安全性和便利性。下面将详细讲解这个主题,包括Android系统架构、权限管理、服务、广播接收器以及权限...

    Android高级应用源码-一键锁屏功能源码.zip

    在Android平台上,开发一款具有高级特性的应用,如一键锁屏功能,是许多开发者追求的目标。这个"Android高级应用源码-一键锁屏功能源码.zip"提供了实现这一功能的详细代码,对于学习和理解Android系统的锁屏机制非常...

    Android代码-android一键锁屏源代码android4.2工作正常.zip

    这个名为"Android代码-android一键锁屏源代码android4.2工作正常.zip"的压缩包文件提供了在Android 4.2版本上运行良好的一键锁屏应用的源代码。下面我们将详细探讨这个应用可能涉及的关键技术点和实现原理。 1. **...

    ppc关屏软件--一键锁屏

    标题中的“ppc关屏软件--一键锁屏”指的是针对PPC(Pocket PC)设备的特定软件,旨在提供快速的屏幕关闭和锁定功能。PPC是个人数字助手(Personal Digital Assistant)的一种,早期的智能手机系统,它运行的是...

    应用源码之51CTO下载-自定义锁屏实现----仿正点闹钟.zip

    在本资源中,我们主要关注的是一个Android应用的源码,该应用实现了自定义锁屏功能,模仿了正点闹钟的设计。这个源码对于学习Android编程,特别是想要深入理解自定义锁屏以及闹钟应用的开发人员来说,是一份宝贵的...

    android-sdk-4.2.2 android-sdk-4.2.2-platforms

    标题中的"android-sdk-4.2.2 android-sdk-4.2.2-platforms"指的是Android SDK的一个特定版本,即Android 4.2.2(API级别17),该版本的SDK平台组件。这个版本是Android操作系统的 Jelly Bean 版本的一部分,发布于...

    Android框架浅析之锁屏(Keyguard)机制原理

    ### Android框架浅析之锁屏(Keyguard)机制原理 #### 一、锁屏界面的组成 锁屏(Keyguard)是Android系统中的一个重要组成部分,它主要用于保护用户的隐私数据不被未授权访问。锁屏功能主要由两个部分组成:解锁...

    Android高级应用源码-安卓锁屏和恢复出厂设置功能.zip

    在Android系统中,锁屏和恢复出厂设置是两个非常关键的功能。锁屏是用户与设备交互的第一道防线,提供安全性和隐私保护;恢复出厂设置则是重置设备到初始状态,清除所有用户数据和个性化设置。这份"Android高级应用...

    Android应用源码-Android自定义锁屏实现----仿正点闹钟.zip

    7. **Android布局设计**:使用XML布局文件来定义锁屏界面的结构,包括各组件的位置和属性。可以使用LinearLayout、RelativeLayout或ConstraintLayout等布局管理器。 8. **动画效果**:为了提升用户体验,自定义锁屏...

    Android代码-源码高仿IPhone锁屏.zip

    在Android平台上,开发一款应用程序来高仿iPhone的锁屏界面是一项技术挑战,涉及到多个关键知识点。这份名为"Android代码-源码高仿IPhone锁屏.zip"的压缩包提供了实现这一功能的源代码,让我们深入探讨一下其中涉及...

Global site tag (gtag.js) - Google Analytics