这次主要是使用Android实现一个打电话的界面以及功能,大概就长下面这个样子:
图片稍微有点糊,看不太清数字,就是0~9加上*和#号
下面两排每一个图标对应一个功能,分别是添加联系人、拨号、删除、查看通讯录、发送短彩信、发送邮件,今天主要是实现了第一排的功能......
1、界面设计activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout2" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/back2" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="82dp" android:ems="10" android:background="#ffffffff" android:textSize="40sp" android:textStyle="bold" android:hint="@null" android:textColor="#ff333333" > <requestFocus /> </EditText> <TableLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="0.70" > <TableRow android:id="@+id/TableRow04" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton01" android:layout_width="70dp" android:layout_height="70dp" android:onClick="digital_click" android:src="@drawable/b1" android:scaleType="fitXY" android:layout_marginLeft="12dp" android:background="@drawable/button_selector" android:tag="1" /> <ImageButton android:id="@+id/ImageButton02" android:layout_width="70dp" android:layout_height="70dp" android:src="@drawable/b2" android:onClick="digital_click" android:layout_marginLeft="30dp" android:scaleType="fitXY" android:background="@drawable/button_selector" android:tag="2"/> <ImageButton android:id="@+id/ImageButton03" android:layout_width="70dp" android:layout_height="70dp" android:src="@drawable/b3" android:onClick="digital_click" android:scaleType="fitXY" android:layout_marginLeft="30dp" android:background="@drawable/button_selector" android:tag="3" /> </TableRow> <TableRow android:id="@+id/TableRow03" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton04" android:layout_width="70dp" android:layout_height="70dp" android:onClick="digital_click" android:src="@drawable/b4" android:layout_marginTop="10dp" android:layout_marginLeft="12dp" android:scaleType="fitXY" android:background="@drawable/button_selector" android:tag="4" /> <ImageButton android:id="@+id/ImageButton05" android:layout_width="70dp" android:layout_height="70dp" android:onClick="digital_click" android:src="@drawable/b5" android:scaleType="fitXY" android:layout_marginLeft="30dp" android:layout_marginTop="10dp" android:background="@drawable/button_selector" android:tag="5" /> <ImageButton android:id="@+id/ImageButton06" android:layout_width="70dp" android:layout_height="70dp" android:onClick="digital_click" android:src="@drawable/b6" android:scaleType="fitXY" android:layout_marginLeft="30dp" android:layout_marginTop="10dp" android:background="@drawable/button_selector" android:tag="6"/> </TableRow> <TableRow android:id="@+id/TableRow02" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton07" android:layout_width="70dp" android:layout_height="70dp" android:background="@drawable/button_selector" android:onClick="digital_click" android:scaleType="fitXY" android:src="@drawable/b7" android:layout_marginTop="10dp" android:layout_marginLeft="12dp" android:tag="7"/> <ImageButton android:id="@+id/ImageButton08" android:layout_width="70dp" android:layout_height="70dp" android:background="@drawable/button_selector" android:onClick="digital_click" android:src="@drawable/b8" android:layout_marginLeft="30dp" android:layout_marginTop="10dp" android:scaleType="fitXY" android:tag="8" /> <ImageButton android:id="@+id/ImageButton09" android:layout_width="70dp" android:layout_height="70dp" android:background="@drawable/button_selector" android:onClick="digital_click" android:scaleType="fitXY" android:src="@drawable/b9" android:layout_marginLeft="30dp" android:layout_marginTop="10dp" android:tag="9" /> </TableRow> <TableRow android:id="@+id/TableRow01" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton10" android:layout_width="70dp" android:layout_height="70dp" android:background="@drawable/button_selector" android:onClick="digital_click" android:scaleType="fitXY" android:src="@drawable/b10" android:layout_marginTop="10dp" android:layout_marginLeft="12dp" android:tag="*"/> <ImageButton android:id="@+id/ImageButton11" android:layout_width="70dp" android:layout_height="70dp" android:background="@drawable/button_selector" android:onClick="digital_click" android:scaleType="fitXY" android:src="@drawable/b0" android:layout_marginLeft="30dp" android:layout_marginTop="10dp" android:tag="0"/> <ImageButton android:id="@+id/ImageButton12" android:layout_width="70dp" android:layout_height="70dp" android:background="@drawable/button_selector" android:onClick="digital_click" android:src="@drawable/b11" android:layout_marginLeft="30dp" android:layout_marginTop="10dp" android:scaleType="fitXY" android:tag="#" /> </TableRow> </TableLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageButton android:id="@+id/add" android:layout_width="60dp" android:layout_height="60dp" android:layout_marginTop="10dp" android:layout_marginLeft="12dp" android:onClick="newPeople" android:background="@drawable/add" /> <ImageButton android:id="@+id/dialer" android:layout_width="60dp" android:layout_height="60dp" android:layout_marginTop="10dp" android:layout_marginLeft="41dp" android:onClick="dial" android:background="@drawable/call" /> <ImageButton android:id="@+id/delete" android:layout_width="60dp" android:layout_height="60dp" android:layout_marginTop="10dp" android:layout_marginLeft="46dp" android:onClick="delete" android:background="@drawable/delete" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageButton android:id="@+id/contact" android:layout_width="60dp" android:layout_height="60dp" android:onClick="onActivityResult" android:layout_marginTop="10dp" android:layout_marginLeft="12dp" android:background="@drawable/contact" /> <ImageButton android:id="@+id/message" android:layout_width="60dp" android:layout_height="60dp" android:background="@drawable/msg" android:layout_marginLeft="41dp" android:layout_marginTop="10dp" /> <ImageButton android:id="@+id/email" android:layout_width="60dp" android:layout_height="60dp" android:onClick="sendEmail" android:background="@drawable/email" android:layout_marginLeft="46dp" android:layout_marginTop="10dp"/> </LinearLayout> </LinearLayout>
(1)背景切换的实现:
为了方便用户知道自己按了什么键,在按键的时候会进行一下背景切换,不按的时候显示src路径下的图片,按下去时显示background的图片,这里就涉及到background和src之间的大小关系,可以使用scaleType来进行调节,ayout_width什么的,定义的都是background的大小。
(2)所有的数字按钮都需要触发一个事件,就是记录下来是哪个数字,如果都在MainActivity中捕获的,有点麻烦,所以定义了一个digital_click函数,所有的数字的点击都触发这个函数
2、MainActivity中功能的实现
(1)digital_click函数,捕获点击的数字
public void digital_click(View view){ ImageButton btnDigital=(ImageButton) view; String text=btnDigital.getTag().toString();//捕获点击按钮中的tag currentNum.append(text);//将捕获的数字存储起来 display();//显示点击的数字 } public void display(){ textResult.setText(currentNum.toString()); }
(2)delete删除
//删除功能 public void delete(View view){ if(currentNum.length()>=1){ currentNum.delete(currentNum.length()-1, currentNum.length()); } if(currentNum.length()==0){//没有号码时,提示 Toast toast=Toast.makeText(this,"请输入号码",100); toast.show(); display(); } textResult.setText(currentNum); }
(3)拨号功能实现
public void dial(View view) { EditText text=(EditText)findViewById(R.id.editText1);//获取editText中显示的电话号码 String number=text.getText().toString(); Intent intent = new Intent(); intent.setAction(intent.ACTION_CALL);//调用android自定义的API打电话 intent.setData(Uri.parse("tel:"+number));//设置电话号码 startActivity(intent);//方法内部会自动为Intent添加类别: android.intent.category.DEFAULT }
(4)添加联系人
我们这里实现的添加联系人是点击添加联系人按钮,会自动跳转到手机的添加联系人页面(就跟平时自己在手机上用的一样)
//新建联系人 public void newPeople(View view){ Intent it = new Intent(Intent.ACTION_INSERT,Uri.withAppendedPath(Uri.parse("content://com.android.contacts"),"contacts" )); it.setType("vnd.android.cursor.dir/person"); String number = textResult.getText().toString(); it.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_PHONE,number); startActivity(it); }
最后结果如下:
相关推荐
10.5 Android电话功能 335 10.5.1 打电话 335 10.5.2 监控电话状态和电话活动 336 10.5.3 监控数据连通性和活动 338 10.5.4 访问手机的属性和状态 339 10.5.5 控制电话 340 10.6 使用蓝牙 341 10.6.1 蓝牙...
Android 的 App Market 模式,软件开发者获得 7 成收入, 3 成用于系统维护。难点在于位置营销。 设备商通过卖设备、内置特色应用来获得盈利。也可以兼职专业软件开发者进行赢利。 Google 自身通过基于统一平台为...
android通讯录功能,实现了如下功能 1.检索手机存入联系人并显示 2.右侧导航条根据拼音字母检索联系人 3.通过搜索栏实时搜索联系人 4.vCard格式导出并发送分享功能 5.检测系统通讯录是否有变化,有变化在通知栏通知,并...
android实现打电话 发短信功能 本人习作 供学习参考 可以运行于android2.3之上的android系统
3> 学习使用ANDROID操作系统 4> 开发与运行(卸载)第一个ANDROID应用 5> 项目的目录结构 6> 项目清单文件分析 7> 分析第一个ANDROID应用的启动过程 8> 电话拔打 9> 查看手机模拟器往控制台输出的日志信息 10> 如何...
本系统包括存储,删除,Android修改,打电话,发信息,发邮件,备份SD卡等功能,满足了用户对通讯录的需求。此通讯录的设计遵循标准的开发流程,首先进行需求分析,然后确定通讯录的功能,再编写程序的代码,调试程序...
我软件用Android写的,实现了本地联系人基本信息以及头像的读取,联系人头像的修改,联系人的增删改查功能的实现,以及联系人的批量删除.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行...
一个与拨号打电话相关的android编程实例,电话功能模块是Android系统中的基础且核心模块,运行级别较高,如图所示,可完成联系人、时间表、设置、日志等模块功能,另外还有联系人删除、同步,添加等功能。...
6.23 画一颗心,打电话给HONEY 6.24 开启内置闹钟与已安装的应用程序设置 6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动...
SIM卡运营商(获取手机号码功能暂时无法实现).zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
6.23 画一颗心,打电话给HONEY 6.24 开启内置闹钟与已安装的应用程序设置 6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动...
本系统包括存储,删除,Android修改,打电话,发信息,发邮件,备份SD卡等功能,满足了用户对通讯录的需求。此通讯录的设计遵循标准的开发流程,首先进行需求分析,然后确定通讯录的功能,再编写程序的代码,调试程序...
2. 向选中的联系人打电话、发短信。结构图如图1所示 图1 功能结构图 3.2页面设计 通讯录界面如图2所示。添加联系人和编辑联系人界面,如图3所示。 图2 图3 单击主页面中任意一个名字,即可查看对应的通讯录的详细...
6.23 画一颗心,打电话给HONEY 6.24 开启内置闹钟与已安装的应用程序设置 6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动...
6.23 画一颗心,打电话给HONEY 6.24 开启内置闹钟与已安装的应用程序设置 6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动...
3> 学习使用ANDROID操作系统 4> 开发与运行(卸载)第一个ANDROID应用 5> 项目的目录结构 6> 项目清单文件分析 7> 分析第一个ANDROID应用的启动过程 8> 电话拔打 9> 查看手机模拟器往控制台输出的日志信息 10> ...
毕设&课设&项目&实训-基于Android系统开发的智能语音助手,它能够实现陪你聊天、打电话、发短信、打开应用 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、...
5.Android中调用系统自带的API实现打电话、发短信、Email及拍照功能 6.通讯录数据库设计的技巧及注意事项 7.SQLite数据库的应用 8.Activtiy+Intent的使用及注意事项 9.Android中的定时提醒及Service的运用 10. MVC...
安卓Android篮球教学与场地预订...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------