Android4.1电话呼叫界面布局设计:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/incall_screen"    android:layout_width="match_parent"    android:layout_height="match_parent">    <com.android.phone.InCallContactPhoto android:id="@+id/photo"           android:layout_alignParentTop="true"                   android:layout_width="match_parent"                   android:layout_height="match_parent"                   android:gravity="top|center_horizontal"                   android:scaleType="centerCrop"                   android:contentDescription="@string/contactPhoto"                   android:background="@drawable/picture_unknown"/>    <ImageView android:id="@+id/insetPhoto"            android:layout_width="@dimen/contact_photo_inset_width"            android:layout_height="@dimen/contact_photo_inset_height"            android:scaleType="centerCrop"            android:layout_marginLeft="@dimen/contact_photo_inset_left_margin"/>    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <RelativeLayout            android:id="@+id/inCallPanel"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_alignTop="@id/inCallTouchUi" >            <com.android.phone.CallCard                android:id="@+id/callCard"                android:layout_width="match_parent"                android:layout_height="wrap_content" />        </RelativeLayout>        <com.android.phone.InCallTouchUi            android:id="@+id/inCallTouchUi"            android:layout_width="match_parent"            android:layout_height="wrap_content"/>    </RelativeLayout>    <ViewStub android:id="@+id/otaCallCardStub"              android:layout="@layout/otacall_card"              android:layout_width="match_parent"              android:layout_height="match_parent"/>    <ViewStub android:id="@+id/manageConferencePanelStub"              android:layout="@layout/manage_conference_panel_new_ui"              android:layout_width="match_parent"              android:layout_height="match_parent"/>    <LinearLayout android:id="@+id/inCallProviderOverlay"        android:background="@drawable/dialog_bg_calling_via"        android:layout_width="match_parent"        android:layout_height="88dip"        android:layout_marginTop="@dimen/provider_overlay_top_margin"        android:layout_gravity="top"        android:gravity="center"        android:visibility="gone"        android:orientation="horizontal">         <ImageView android:id="@+id/callingViaIcon"            android:layout_width="40dip"            android:layout_height="40dip"/>        <TextView android:id="@+id/callingVia"            android:text="@string/calling_via_template"            android:layout_weight="1"            android:layout_width="0dip"            android:layout_height="match_parent"            android:textAppearance="?android:attr/textAppearanceSmallInverse"            android:gravity="center"/>        <View            android:layout_width="40dip"            android:layout_height="40dip"/>    </LinearLayout></FrameLayout>

界面效果如图:

InCallContactPhoto

InCallContactPhoto用于显示头像图片,该类继承于ImageView类,显示效果如下:

CallCard

inCallPanel是一个相对布局,该布局位于InCallTouchUi之上,在该布局中放置了一个CallCard控件,CallCard继承与LinearLayout,其布局文件为call_card.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/call_info_container"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@android:color/transparent"    android:orientation="vertical">    <RelativeLayout android:id="@+id/call_info_1"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1">        <RelativeLayout android:id="@+id/call_banner_1"            android:layout_alignParentBottom="true"            android:layout_width="match_parent"            android:layout_height="@dimen/call_banner_height_newui"            android:paddingLeft="@dimen/call_banner_side_padding"            android:paddingRight="@dimen/call_banner_side_padding"            android:background="@drawable/call_storage_contact_blackbg_up_sprd"><FrameLayout                 android:id="@+id/mainCallLayout"                android:layout_alignParentTop="true"                android:gravity="center"                android:layout_marginTop="3dip"                android:layout_width="match_parent"                android:layout_height="wrap_content">          <TextView android:id="@+id/mainName"                android:layout_alignParentTop="true"                android:gravity="center"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:textColor="@color/incall_call_banner_text_color"                android:textStyle="bold"                android:textSize="15sp"                android:visibility="visible"                android:singleLine="true"/>            <!-- talk time -->      <TextView android:id="@+id/elapsedTime"                android:layout_alignParentTop="true"                android:gravity="center"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:textStyle="bold"                android:textColor="@color/incall_call_banner_text_color"                android:textSize="15sp"                android:visibility="gone"            android:singleLine="true"/>            <!-- recording label -->            <TextView android:id="@+id/recordinglabel"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_below="@id/elapsedTime"            android:gravity="left"            android:text="@string/recording"            style="@style/InCallCardTextNewUI"            android:textAllCaps="true"            android:visibility="gone"/>            </FrameLayout>            <!-- Contacts detail -->            <LinearLayout android:id="@+id/labelAndNumber"                          android:layout_below="@id/mainCallLayout"                          android:layout_marginTop="2dip"                          android:layout_width="match_parent"                          android:layout_height="wrap_content"                          android:gravity="center"                          android:orientation="horizontal">                <!--Phone type: Phone-->                <TextView android:id="@+id/label"                          android:layout_width="wrap_content"                          android:layout_height="wrap_content"                          style="@style/InCallCardTextNewUI"                          android:layout_marginLeft="3dip"                          android:layout_marginRight="6dip"                          android:textAllCaps="true"                          android:singleLine="true"                          android:ellipsize="end"/>                            <!-- Contacts name -->            <TextView android:id="@+id/name"                          android:layout_width="wrap_content"                          android:layout_height="wrap_content"                          android:layout_gravity="center"                          style="@style/InCallCardTextNewUI"                          android:textAllCaps="true"                          android:singleLine="true"                          android:ellipsize="end"/>                <!--Phone number-->                <TextView android:id="@+id/phoneNumber"                          android:layout_width="wrap_content"                          android:layout_height="wrap_content"                           style="@style/InCallCardTextNewUI"                          android:singleLine="true"                          android:ellipsize="end"                          android:layout_marginLeft="10dip"/>            </LinearLayout><!-- Incoming,HOLd and so on -->             <TextView android:id="@+id/callStateLabel"            android:layout_width="match_parent"            android:layout_marginTop="2dip"            android:layout_height="wrap_content"            android:layout_below="@id/labelAndNumber"            android:gravity="center"            android:ellipsize="end"            style="@style/InCallCardTextNewUI"            android:textAllCaps="true"            android:visibility="gone"/>            <!--  Internet call -->            <TextView android:id="@+id/callTypeLabel"                  android:layout_marginTop="2dip"                      android:layout_below="@id/callStateLabel"                      android:layout_width="match_parent"                      android:layout_height="wrap_content"                      style="@style/InCallCardTextNewUI"                      android:maxLines="1"                      android:ellipsize="end"/>            <!-- Social Status Now Not used -->            <TextView android:id="@+id/socialStatus"                      android:layout_marginTop="2dip"                      android:layout_below="@id/callTypeLabel"                      android:layout_width="match_parent"                      android:layout_height="wrap_content"                      style="@style/InCallCardTextNewUI"                      android:textColor="@color/incall_call_banner_text_color"                      android:maxLines="2"                      android:ellipsize="end"/>        </RelativeLayout>    </RelativeLayout>    <FrameLayout android:id="@+id/call_info_2"        android:layout_width="match_parent"        android:layout_height="40dip"        android:background="@android:color/transparent"        android:orientation="vertical">        <LinearLayout android:id="@+id/call_banner_2"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="vertical"            android:paddingLeft="@dimen/call_banner_side_padding"            android:paddingRight="@dimen/call_banner_side_padding"            android:background="@drawable/call_storage_contact_blackbg_info_sprd">            <TextView android:id="@+id/secondaryCallName"                      android:layout_width="match_parent"                      android:layout_height="25dip"                      android:layout_weight="1"                      android:textAppearance="?android:attr/textAppearanceMedium"                      android:textColor="@color/incall_call_banner_text_color"                      android:singleLine="true"/>            <TextView android:id="@+id/secondaryCallStatus"                      android:layout_width="match_parent"                      android:layout_height="20dip"                      android:layout_weight="1"                      android:text="@string/onHold"                      style="@style/InCallCardTextNewUI"                      android:textColor="@color/incall_call_banner_text_color"                      android:textAllCaps="true"                      android:singleLine="true"/>        </LinearLayout>     </FrameLayout></LinearLayout>

InCallTouchUi

InCallTouchUi控件是拨号操作界面,InCallTouchUi继承于FrameLayout布局,其对应的布局文件为incall_touch_ui.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <RelativeLayout        android:id="@+id/CallEndControls"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:visibility="gone" >        <LinearLayout            android:id="@+id/actionBar_normal"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_alignParentBottom="true"            android:background="@drawable/call_storage_contact_blackbg_down_sprd"            android:orientation="vertical" >            <Button                android:id="@+id/ContactsNew"                android:layout_alignParentLeft="true"                android:layout_height="60dip"                android:layout_width="140dip"                android:text="@string/menu_add"                android:background="@drawable/call_button_reject" />            <!-- Accept Call -->            <Button                android:id="@+id/ContactsAdd"                android:layout_alignParentRight="true"                android:layout_height="60dip"                android:layout_width="140dip"                android:text="@string/menu_edit"                android:background="@drawable/call_button_answer" />        </LinearLayout>    </RelativeLayout>    <RelativeLayout        android:id="@+id/inComingCallControlsLocked"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:background="@android:color/transparent"        android:visibility="gone" >    <com.android.phone.VerticalScrollLayout                android:id="@+id/ScrollLayout"                android:layout_width="match_parent"                android:background="@android:color/transparent"                android:layout_height="200dip"/>    </RelativeLayout>    <RelativeLayout        android:id="@+id/inComingCallControls"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:visibility="gone" >        <LinearLayout            android:id="@+id/actionBar_normal"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_alignParentBottom="true"            android:background="@drawable/call_storage_contact_blackbg_down_sprd"            android:orientation="vertical" >            <LinearLayout                android:id="@+id/actionBar_normal_f"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:orientation="horizontal"                android:paddingLeft="@dimen/button_cluster_side_padding"                android:paddingRight="@dimen/button_cluster_side_padding" >                <LinearLayout                    android:id="@+id/handfree"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_weight="1"                    android:orientation="vertical" >                    <ToggleButton                        android:id="@+id/handfreeButtonImage"                        style="@style/ImageButtonNewUi_incoming"                        android:textOn="@null"                        android:textOff="@null"                        android:layout_gravity="center"                        android:background="@drawable/btn_compound_handfree_background" />                    <TextView                        android:id="@+id/handfreeButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:layout_gravity="center"                        android:layout_marginTop="-15dip"                        android:text="@string/onscreenSpeakerText" />                </LinearLayout>                <LinearLayout                    android:id="@+id/MessageButton"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_weight="1"                    android:orientation="vertical" >                    <ImageButton                        android:id="@+id/MessageButtonImage"                        style="@style/ImageButtonNewUi_incoming"                        android:layout_gravity="center"                        android:background="#00000000"                        android:src="@drawable/call_button_feedback" />                    <TextView                        android:id="@+id/MessageButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:layout_gravity="center"                        android:layout_marginTop="-15dip"                        android:text="@string/description_target_send_sms" />                </LinearLayout>                <LinearLayout                    android:id="@+id/IncomingMuteLayout"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_weight="1"                    android:orientation="vertical" >                    <ImageButton                        android:id="@+id/MuteButtonImage"                        style="@style/ImageButtonNewUi_incoming"                        android:layout_gravity="center"                        android:background="#00000000"                        android:src="@drawable/call_button_mute_newui" />                    <TextView                        android:id="@+id/MuteRingButtonLabel"                        android:layout_width="wrap_content"                        android:layout_height="wrap_content"                        android:textAppearance="?android:attr/textAppearanceSmall"                        android:textAllCaps="true"                        android:textColor="@color/mute_button_text"                        android:layout_marginLeft="5dip"                        android:layout_marginRight="5dip"                        android:layout_gravity="center"                        android:layout_marginTop="-15dip"                        android:text="@string/onscreenMusicMuteText" />                </LinearLayout>            </LinearLayout>            <LinearLayout                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:orientation="horizontal"                android:layout_marginTop="@dimen/button_margin"                android:layout_marginBottom="@dimen/button_margin"                android:paddingLeft="@dimen/button_cluster_side_padding"                android:paddingRight="@dimen/button_cluster_side_padding" >                <Button                    android:id="@+id/IncomingCallRejectButton"                    android:layout_height="50dip"                    android:layout_weight="1"                    android:layout_width="match_parent"                    android:layout_marginRight="@dimen/button_cluster_side_padding"                    android:text="@string/description_target_decline"                    android:textSize="20dip"                    android:background="@drawable/call_button_reject" />                <Button                    android:id="@+id/IncomingCallAnswerButton"                    android:layout_height="50dip"                    android:layout_weight="1"                    android:layout_width="match_parent"                    android:layout_marginLeft="@dimen/button_cluster_side_padding"                    android:text="@string/description_target_answer"                    android:textSize="20dip"                    android:background="@drawable/call_button_answer" />            </LinearLayout>        </LinearLayout>    </RelativeLayout>    <RelativeLayout        android:id="@+id/inCallControls"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:visibility="gone" >        <LinearLayout                android:id="@+id/manageConferenceButton"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_alignParentTop="true"                android:layout_centerHorizontal="true"                android:background="@android:color/transparent"                android:gravity="center"                android:orientation="horizontal" >                <ImageButton                    android:id="@+id/manageConferenceButtonImage"                    android:layout_height="wrap_content"                    android:layout_width="wrap_content"                    android:layout_gravity="center"                    android:background="@android:color/transparent"                    android:contentDescription="@string/onscreenManageConferenceText"                    android:src="@drawable/btn_compound_conference_newui" />                <TextView                    android:id="@+id/manageConferenceButtonLabel"                    style="@style/InCallExtraRowButtonLabelNewUI"                    android:layout_marginTop="10dip"                    android:layout_gravity="center"                    android:visibility="gone"                    android:text="@string/onscreenManageConferenceText" />            </LinearLayout>        <LinearLayout            android:id="@+id/bottomButtons"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_alignParentBottom="true"            android:background="@drawable/call_storage_contact_blackbg_down_sprd"            android:orientation="vertical" >        <FrameLayout                android:layout_width="match_parent"                android:layout_height="wrap_content">            <FrameLayout                android:id="@+id/extraButtonRow"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:visibility="gone"                android:paddingLeft="@dimen/button_cluster_side_padding"                android:paddingRight="@dimen/button_cluster_side_padding" >                <LinearLayout                    android:id="@+id/cdmaMergeButton"                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:background="?android:attr/selectableItemBackground"                    android:orientation="horizontal" >                    <ImageButton                        android:id="@+id/cdmaMergeButtonImage"                        style="@style/InCallButton"                        android:clickable="false"                        android:contentDescription="@string/onscreenMergeCallsText"                        android:src="@drawable/ic_merge_holo_dark" />                    <TextView                        android:id="@+id/cdmaMergeButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:text="@string/onscreenMergeCallsText" />                </LinearLayout>            </FrameLayout><LinearLayout                android:id="@+id/bottomButtonsRow2"                android:layout_width="match_parent"                android:layout_height="80dip"                android:visibility="visible"                android:gravity="center_vertical"                android:orientation="horizontal">                <LinearLayout                android:layout_width="match_parent"                android:layout_height="80dip"                android:gravity="center_horizontal"                android:layout_weight="1"                android:orientation="vertical" >                <ToggleButton                    android:id="@+id/menuPhoneRecorder"                    style="@style/InCallButtonNewUi"                    android:layout_gravity="center"                    android:layout_marginRight="6dip"                    android:background="@drawable/btn_compound_record_newui"                    android:contentDescription="@string/onscreenShowRecodText" />                <TextView                        android:id="@+id/menuPhoneRecorderLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:layout_marginRight="6dip"                        android:layout_gravity="center"                        android:singleLine="true"                        android:layout_marginTop="-15dip"                        android:text="@string/audio_db_album_name" />            </LinearLayout>                <LinearLayout                android:layout_width="match_parent"                android:layout_height="80dip"                android:layout_gravity="center"android:gravity="center_horizontal"                android:layout_weight="1"                android:orientation="vertical" >                <ToggleButton                    android:id="@+id/holdButton"                    android:gravity="center"                    style="@style/ImageButtonNewUi_new"                    android:textOn="@null"                    android:textOff="@null"                    android:layout_marginTop="24dip"                    android:background="@drawable/btn_compound_hold_newui"                    android:contentDescription="@string/onscreenHoldText" />                <ImageButton                    android:id="@+id/swapButton"                    style="@style/ImageButtonNewUi_new"                    android:scaleType="center"                    android:background="#00000000"                    android:layout_marginTop="24dip"                    android:contentDescription="@string/onscreenSwapCallsText"                    android:src="@drawable/btn_compound_switch_newui" />                <TextView                        android:id="@+id/holdButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:layout_gravity="center"                        android:singleLine="true"                        android:layout_marginTop="6dip"                        android:text="@string/card_title_on_hold" /></LinearLayout>                <LinearLayout                android:layout_width="match_parent"                android:layout_height="80dip"                android:gravity="center_horizontal"                android:layout_weight="1"                android:layout_marginTop="24dip"                android:orientation="vertical" >                <ImageButton                    android:id="@+id/addButton"                    style="@style/ImageButtonNewUi_new"                    android:layout_marginLeft="6dip"                    android:scaleType="center"                    android:background="#00000000"                    android:contentDescription="@string/onscreenAddCallText"                android:src="@drawable/btn_compound_merge_background_newui" />                <ImageButton                    android:id="@+id/mergeButton"                    style="@style/ImageButtonNewUi_new"                    android:layout_marginLeft="6dip"                    android:scaleType="center"                    android:background="#00000000"                    android:contentDescription="@string/onscreenMergeCallsText"               android:src="@drawable/btn_compound_merge_button_newui" />                <TextView                        android:id="@+id/addButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:layout_marginTop="6dip"                        android:layout_marginLeft="2dip"                        android:singleLine="true"                        android:layout_gravity="center"                        android:text="@string/selectContact" /></LinearLayout>            </LinearLayout>        <ViewStub            android:id="@+id/dtmf_twelve_key_dialer_stub"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:background="@android:color/transparent"            android:layout="@layout/dtmf_twelve_key_dialer_view_newui" />        </FrameLayout>            <LinearLayout                android:layout_width="match_parent"                android:layout_height="80dip"                android:orientation="horizontal"                 android:visibility="visible"                android:gravity="center_vertical"><LinearLayout                android:layout_width="match_parent"                android:layout_height="80dip"                android:gravity="center_horizontal"                android:layout_weight="1"                android:orientation="vertical" >                <ToggleButton                    android:id="@+id/audioButton"                    android:gravity="center"                    style="@style/InCallButtonNewUi"                    android:layout_marginRight="6dip"                    android:background="@drawable/btn_compound_audio_newui"                    android:contentDescription="@string/onscreenAudioText" />                <TextView                        android:id="@+id/audioButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:layout_gravity="center"                        android:layout_marginRight="6dip"                        android:singleLine="true"                        android:layout_marginTop="-15dip"                        android:text="@string/onscreenSpeakerText" />            </LinearLayout>            <LinearLayout                android:layout_width="match_parent"                android:layout_height="80dip"                android:layout_weight="1"                android:gravity="center_horizontal"                android:layout_gravity="center"                android:orientation="vertical" >                <ToggleButton                    android:id="@+id/dialpadButton"                    android:gravity="center"                    style="@style/InCallButtonNewUi"                    android:background="@drawable/btn_compound_keyboard_newui"                    android:contentDescription="@string/video_btn_dialer" />                <TextView                        android:id="@+id/dialpadButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:layout_gravity="center"                        android:layout_marginTop="-15dip"                        android:singleLine="true"                        android:text="@string/video_btn_dialer" /></LinearLayout><LinearLayout                android:layout_width="match_parent"                android:layout_height="80dip"                android:layout_weight="1"                android:layout_gravity="center_horizontal"                android:orientation="vertical" >                <ToggleButton                    android:id="@+id/muteButton"                    style="@style/InCallButtonNewUi"                    android:layout_gravity="center"                    android:layout_marginLeft="6dip"                    android:background="@drawable/btn_compound_mute_newui"                    android:contentDescription="@string/onscreenMuteText" />                <TextView                        android:id="@+id/muteButtonLabel"                        style="@style/InCallExtraRowButtonLabelNewUI"                        android:singleLine="true"                        android:layout_gravity="center"                        android:layout_marginLeft="4dip"                        android:layout_marginTop="-15dip"                        android:text="@string/video_mute" />            </LinearLayout>            </LinearLayout>            <LinearLayout                android:layout_width="match_parent"                android:layout_height="84dip"                android:paddingLeft="@dimen/button_cluster_side_padding_newui"                android:paddingRight="@dimen/button_cluster_side_padding_newui"                android:orientation="horizontal" >                <Button                    android:id="@+id/endButton"                    style="@style/InCallEndButtonNewUI"                    android:layout_marginTop="20dip"                android:layout_marginBottom="@dimen/button_cluster_side_padding_newui"                    android:layout_width="match_parent"                    android:text="@string/onscreenEndCallText"                    android:textColor="@color/incall_call_banner_text_color"                    android:contentDescription="@string/onscreenEndCallText"                    android:background="@drawable/call_button_reject" />            </LinearLayout>        </LinearLayout>    </RelativeLayout></RelativeLayout>

该布局定义了电话拨号及电话接听控制界面,电话拨号控制界面效果图如下:

电话接听控制界面效果图如下:

拨号键盘dtmf_twelve_key_dialer_stub布局文件为dtmf_twelve_key_dialer_view_newui.xml

<com.android.phone.DTMFTwelveKeyDialerView    xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/dtmf_twelve_key_dialer_view_newui"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:layout_marginTop="1dip"    android:background="@android:color/transparent"    android:visibility="gone"    >    <!-- 号码显示控件 -->    <EditText        android:id="@+id/dtmfDialerField"        android:layout_width="match_parent"        android:layout_height="83dp"        android:paddingRight="16dp"        android:paddingLeft="16dp"        android:singleLine="true"        android:scrollHorizontally="true"        android:textSize="40sp"        android:gravity="center"        android:freezesText="true"        android:background="@android:color/transparent"        android:textColor="@color/dtmf_dialer_display_text"        android:focusableInTouchMode="false"        android:clickable="false"/>    <!-- 拨号键盘 -->    <include layout="@layout/dialpad_newui" /></com.android.phone.DTMFTwelveKeyDialerView>

拨号键盘界面定义在dialpad_newui.xml中

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/dialpad"    android:layout_width="match_parent"    android:layout_height="262dip"    android:layout_gravity="center_horizontal"    android:background="@android:color/transparent"    android:layout_weight="@integer/dialpad_layout_weight_dialpad">    <TableRow        android:layout_height="0px"        android:layout_weight="1" >        <ImageButton            android:id="@+id/one"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_one"            android:src="@drawable/dial_num_1_no_vm_newui"            android:background="@drawable/btn_dialpad_1_bg"/>        <ImageButton            android:id="@+id/two"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_two"            android:src="@drawable/dial_num_2_newui"            android:background="@drawable/btn_dialpad_3_bg"/>        <ImageButton            android:id="@+id/three"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_three"            android:src="@drawable/dial_num_3_newui"            android:background="@drawable/btn_dialpad_1_bg"/>    </TableRow>    <TableRow        android:layout_height="0px"        android:layout_weight="1">        <ImageButton            android:id="@+id/four"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_four"            android:src="@drawable/dial_num_4_newui"            android:background="@drawable/btn_dialpad_1_bg"/>        <ImageButton            android:id="@+id/five"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_five"            android:src="@drawable/dial_num_5_newui"            android:background="@drawable/btn_dialpad_3_bg"/>        <ImageButton            android:id="@+id/six"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_six"            android:src="@drawable/dial_num_6_newui"            android:background="@drawable/btn_dialpad_1_bg"/>    </TableRow>    <TableRow        android:layout_height="0px"        android:layout_weight="1">        <ImageButton            android:id="@+id/seven"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_seven"            android:src="@drawable/dial_num_7_newui"            android:background="@drawable/btn_dialpad_1_bg"/>        <ImageButton            android:id="@+id/eight"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_eight"            android:src="@drawable/dial_num_8_newui"            android:background="@drawable/btn_dialpad_3_bg"/>        <ImageButton            android:id="@+id/nine"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_nine"            android:src="@drawable/dial_num_9_newui"            android:background="@drawable/btn_dialpad_1_bg"/>    </TableRow>    <TableRow        android:layout_height="0px"        android:layout_weight="1">        <ImageButton            android:id="@+id/star"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_star"            android:src="@drawable/dial_num_star_newui"            android:background="@drawable/btn_dialpad_2_bg"/>        <ImageButton            android:id="@+id/zero"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_zero"            android:src="@drawable/dial_num_0_no_plus_newui"            android:background="@drawable/btn_dialpad_4_bg"/>        <ImageButton            android:id="@+id/pound"            style="@style/DialpadButtonStyleNewui"            android:contentDescription="@string/description_image_button_pound"            android:src="@drawable/dial_num_pound_newui"            android:background="@drawable/btn_dialpad_2_bg"/>    </TableRow></TableLayout>

效果图如下所示:


更多相关文章

  1. Android拨号键盘增加魔力爱心数字
  2. android tabHost布局之一 继承TabActivity并以activity布局
  3. 【Android(安卓)- 框架】之刷新加载框架Ultra-Pull-To-Refresh的
  4. 新建一个 Android(安卓)项目
  5. Android艺术探究二次学习笔记
  6. 自定义Android(安卓)标题栏TitleBar布局
  7. 简单的三方登录SDK示例,Android(安卓)Activity之间数据的传递
  8. Others1
  9. Android调用系统的库

随机推荐

  1. ImageView的属性android:scaleType,即Imag
  2. launcher3时钟小部件
  3. Android TTS 支持中文
  4. 2020最新版Android一步一步教轻松通过Arc
  5. android使用滚动视图
  6. android UI跨线程操作
  7. GridView
  8. 设置透明,模糊,黑暗度
  9. android aosp 下载源代码
  10. android中关于margin的一些注意点