android 拨号盘Contacts讲解(四)

1. 拨号盘最底部控制栏 讲解,如图所示:

android 拨号盘Contact模块讲解(四)_第1张图片

2. 界面布局,通过dialpad_additional_buttons.xml文件,这是展讯代码,Mtk一样,

路径:packages/apps/Contacts/res/layout/

主要涉及到了三个ImageButton , 2个view 的横向布局排列,以下布局xml文件代码。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialpadAdditionalButtons"
android:layout_width="match_parent"
android:layout_height="@dimen/dialpad_additional_buttons_height"
android:layout_alignParentBottom="true"
android:layout_gravity="center_horizontal"
android:layout_weight="@integer/dialpad_layout_weight_additional_buttons"
android:background="#000000"
android:orientation="horizontal" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/dialpad_background"
android:orientation="horizontal" >

<ImageButton
android:id="@+id/videoButton" ------这个是视频通话
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="0.30"
android:background="?android:attr/selectableItemBackground"
android:contentDescription="@string/description_search_button"
android:src="@drawable/video_call"
android:state_enabled="false" />

<View android:id="@+id/after_dialButton_divider"
android:layout_width="1dip"
android:layout_height="24dip"
android:layout_gravity="center_vertical"
android:background="?android:attr/dividerVertical" />

<ImageButton
android:id="@+id/dialButton" --------拨号功能按钮
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="0.40"
android:background="@drawable/btn_call"
android:contentDescription="@string/description_dial_button"
android:src="@drawable/ic_dial_action_call"
android:state_enabled="false" />

<Button android:id="@+id/dialButtonEcc" ------- 紧急拨号按钮
android:layout_width="80dp"
android:layout_weight="0.4"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:text="@string/emergencycall_ext"
android:state_enabled="false"
android:background="@drawable/btn_dial_ecc"/>

<View
android:layout_width="1dip"
android:layout_height="24dip"
android:layout_gravity="center_vertical"
android:background="?android:attr/dividerVertical" />

<ImageButton
android:id="@+id/deleteButton" --------删除输入框删除按钮
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="0.30"
android:background="?android:attr/selectableItemBackground"
android:contentDescription="@string/description_delete_button"
android:src="@drawable/ic_dial_action_delete"
android:state_enabled="false" />
</LinearLayout>

</LinearLayout>

注意到:简单的两个图片,怎么这么多组件,这样分清了:

是否存在sim卡等情况了,在没有sim卡时,显示如图,有sim卡时,就不同了,同时,注意到组件中属性

3. 当没有sim卡时,紧急拨号状态中,如图:

使用的是,<Button android:id="@+id/dialButtonEcc">这个组件,

*属性:android:layout_weight="0.4",作为图片显示比例。

layout_weight使用:

layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空间。比如:

如果两个文本编辑元素每一个的layout_weight值都设置为1,则两者平分
在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2则剩余空间的三分之一分给第一个,三分之二分给第二个(数值越大,重要度越高)

而在本界面中,看到Button设置为0.4最后一个ImageButto0.3,显示比例大小可见。

*属性:android:state_enabled:设置是否响应事件,指所有事件

*属性:android:background="@drawable/btn_dial_ecc”

作为一个selector使用。在btn_dial_ecc.xml中:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Enabled views -->

<item android:state_pressed="true"

android:drawable="@drawable/incall_menu_background_c_select" />

<item android:state_focused="true"

android:drawable="@drawable/incall_menu_background_c_select" />

<item

android:drawable="@drawable/incall_menu_background_c" />

</selector>

待续.......

更多相关文章

  1. Android开发UI布局必备基础知识
  2. Android基础入门教程——2.2.1 LinearLayout(线性布局)
  3. Android-线性布局的经典案例1-计算器
  4. Android简易计算器——LinearLayout布局
  5. android 使用代码实现 RelativeLayout布局
  6. [Android]android studio预览视图时报错
  7. Android从零撸美团(四) - 美团首页布局解析及实现 - Banner+自定
  8. 源码解析Android中View的layout布局过程
  9. 用android LinearLayout和RelativeLayout实现精确布局

随机推荐

  1. 自定义进度条
  2. android中MotionEvent.ACTION_CANCEL事件
  3. A Visual Guide to Android GUI Widgets
  4. Android Location 和 Sensor的使用,图片旋
  5. Android颜色渐变的分隔线(ListView)
  6. android 中 checkBox 的使用
  7. Android:霓虹灯
  8. 修改进度条ProgressBar颜色
  9. 三步搞定:Vue.js调用Android原生方法
  10. Android拦截、监听系统返回键事件