zoukankan      html  css  js  c++  java
  • Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析


    在4.4中当有来电或去电时,显示给用户的界面 如图1,在4.4之前称之为InCallScreen,但在4.4之后叫做InCallActivity。在4.4中我们调出的拨号盘界面,实际为DialtactsActivity并隶属于Dialer应用。4.4 中界面分为3块,CallCardFragment、CallButtonFragment、AnswerFragment,如下所示:

     
    图 1 InCallActivity界面(左:接通 右:来电)


    InCallActivity布局分析

           在InCallActivity.java中,实现了对界面的初始化,在4.4中界面的布局是通过fragment来完成的,即incall_screen.xml,代码如下:

    1. <FrameLayout  
    2.     xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:id="@+id/main">  
    6.     <!-- MTK VideoCall fragment -->  
    7.     <FrameLayout  
    8.         android:id="@+id/vtCallFragment"  
    9.         android:layout_width="match_parent"  
    10.         android:layout_height="match_parent" />  
    11.   
    12.     <LinearLayout  
    13.         android:id="@+id/in_call_and_button_container"  
    14.         android:layout_width="match_parent"  
    15.         android:layout_height="match_parent"  
    16.         android:orientation="vertical">  
    17.         <RelativeLayout  
    18.              android:id="@+id/in_call_card_container"  
    19.              android:layout_width="match_parent"  
    20.              android:layout_height="match_parent"  
    21.              android:layout_weight="1">  
    22.            <!-- CallCard fragment 用于显示联系人信息 -->  
    23.            <fragment  
    24.                 android:name="com.android.incallui.CallCardFragment"  
    25.                 android:id="@+id/callCardFragment"  
    26.                 android:layout_width="match_parent"  
    27.                 android:layout_height="match_parent"  
    28.                 android:layout_alignParentTop="true"  
    29.                 android:layout_alignParentStart="true" />  
    30.             <!-- 拨号盘 独立出来易于复用 -->  
    31.             <fragment  
    32.                 android:name="com.android.incallui.DialpadFragment"  
    33.                 android:id="@+id/dialpadFragment"  
    34.                 android:layout_width="match_parent"  
    35.                 android:layout_height="match_parent"  
    36.                 android:layout_alignParentTop="true"  
    37.                 android:layout_alignParentStart="true" />  
    38.         </RelativeLayout>  
    39.         <!-- 控制按钮 也就是原来的InCallTouchUi -->  
    40.         <fragment android:name="com.android.incallui.CallButtonFragment"  
    41.                   android:id="@+id/callButtonFragment"  
    42.                   android:layout_width="match_parent"  
    43.                   android:layout_height="wrap_content"/>  
    44.   
    45.     </LinearLayout>  
    46.     <!-- 来电接听/挂断控件 原始使用的系统的GlowpadView -->  
    47.     <fragment android:name="com.android.incallui.AnswerFragment"  
    48.               android:id="@+id/answerFragment"  
    49.               android:layout_width="match_parent"  
    50.               android:layout_height="wrap_content"  
    51.               android:layout_alignParentBottom="true"  
    52.               android:layout_centerHorizontal="true"  
    53.               android:gravity="top"  
    54.               android:layout_gravity="bottom|center_horizontal"  
    55.               android:layout_marginBottom="@dimen/glowpadview_margin_bottom"  
    56.               android:visibility="gone" />  
    57.     <!-- 会议电话管理界面 -->  
    58.     <fragment android:name="com.android.incallui.ConferenceManagerFragment"  
    59.               android:id="@+id/conferenceManagerFragment"  
    60.               android:layout_width="match_parent"  
    61.               android:layout_height="match_parent"  
    62.               android:layout_alignParentTop="true"  
    63.               android:layout_alignParentStart="true"  
    64.               android:layout_alignParentBottom="true"  
    65.               android:layout_alignParentEnd="true" />  
    66.   
    67. </FrameLayout> 




























  • 相关阅读:
    C#多线程参数传递
    Delphi单元测试工具Dunit介绍
    使用javascript生成文件
    Windows自动登录源码
    [Win32]一个调试器的实现
    用MASM写一个简单的实现递归操作的汇编程序,所谓递归,上课已经跟大家说清楚了,如果我们只考虑简单的只分一次的递
    C#多线程编程(4)多线程与UI操作
    在Delphi中实现类型安全的容器,Delphi泛型库DGL引介(提供源码下载) .
    delphi 中几种多线程操作方式
    C#实现WEB服务器
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744519.html
Copyright © 2011-2022 走看看