这里主要是实现了手机通信,其主要实现了打电话功能和发送短信功能。
拨号界面如下(由于模拟器屏幕兼容问题,不能正常显示界面,手机上可正常显示):

点击时每个数字时,imagebutton会更换图片,如下:

想要实现这一功能,主要是对imagebutton的监听,代码如下:
imageButton1.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
//点击
if(event.getAction() == MotionEvent.ACTION_DOWN){
//重新设置按下时的背景图片
((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.d1));
}else if(event.getAction() == MotionEvent.ACTION_UP){ //松开
//再修改为抬起时的正常图片
((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.d1));
}
return false;
}
});
实现拨号功能的代码如下,需要调用ACTION_CALL:
public void dial(View view) {
EditText text=(EditText)findViewById(R.id.editText1);
String number=text.getText().toString();
Intent intent = new Intent();
intent.setAction(intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
startActivity(intent);//方法内部会自动为Intent添加类别: android.intent.category.DEFAULT
}
拨号功能的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="#80bbe7"
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: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="100dp"
android:layout_height="70dp"
android:src="@drawable/c1"
android:onClick="digital_click"
android:background="#80bbe7"
android:tag="1" />
<ImageButton
android:id="@+id/ImageButton02"
android:layout_width="100dp"
android:layout_height="70dp"
android:src="@drawable/c2"
android:onClick="digital_click"
android:background="#80bbe7"
android:tag="2"/>
<ImageButton
android:id="@+id/ImageButton03"
android:layout_width="100dp"
android:layout_height="70dp"
android:src="@drawable/c3"
android:onClick="digital_click"
android:background="#80bbe7"
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="100dp"
android:layout_height="70dp"
android:onClick="digital_click"
android:src="@drawable/c4"
android:background="#80bbe7"
android:tag="4" />
<ImageButton
android:id="@+id/ImageButton05"
android:layout_width="100dp"
android:layout_height="70dp"
android:onClick="digital_click"
android:src="@drawable/c5"
android:background="#80bbe7"
android:tag="5" />
<ImageButton
android:id="@+id/ImageButton06"
android:layout_width="100dp"
android:layout_height="70dp"
android:onClick="digital_click"
android:src="@drawable/c6"
android:background="#80bbe7"
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="100dp"
android:layout_height="70dp"
android:background="#80bbe7"
android:onClick="digital_click"
android:src="@drawable/c7"
android:tag="7"/>
<ImageButton
android:id="@+id/ImageButton08"
android:layout_width="100dp"
android:layout_height="70dp"
android:background="#80bbe7"
android:onClick="digital_click"
android:src="@drawable/c8"
android:tag="8" />
<ImageButton
android:id="@+id/ImageButton09"
android:layout_width="100dp"
android:layout_height="70dp"
android:background="#80bbe7"
android:onClick="digital_click"
android:src="@drawable/c9"
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="100dp"
android:layout_height="70dp"
android:background="#80bbe7"
android:onClick="digital_click"
android:src="@drawable/c10"
android:tag="*"/>
<ImageButton
android:id="@+id/ImageButton11"
android:layout_width="100dp"
android:layout_height="70dp"
android:background="#80bbe7"
android:onClick="digital_click"
android:src="@drawable/c0"
android:tag="0"/>
<ImageButton
android:id="@+id/ImageButton12"
android:layout_width="100dp"
android:layout_height="70dp"
android:background="#80bbe7"
android:onClick="digital_click"
android:src="@drawable/c11"
android:tag="#" />
</TableRow>
</TableLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.23"
android:background="@drawable/b1" />
<ImageButton
android:id="@+id/dialer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.17"
android:onClick="dial"
android:background="@drawable/b2"
/>
<ImageButton
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="delete"
android:background="@drawable/b3" />
</LinearLayout>
</LinearLayout>
需要注意的是必须要设置相对应的权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.VIBRATE" />
短信功能(效果图如下):

实现该功能的主要代码为:
public void send(View view){
String telMsg=MainActivity.this.tel.getText().toString();
String contentMsg=MainActivity.this.content.getText().toString();
Uri uri=Uri.parse("smsto:"+telMsg);//接收人手机
Intent it=new Intent();
it.setAction(Intent.ACTION_SENDTO);//指定action,我要发短信
it.putExtra("sms_body", contentMsg);//设置信息内容
it.setType("vnd.android-dir/mms-sms") ;//设置MIME类型
it.setData(uri);//设置数据,要去的地方
MainActivity.this.startActivity(it);
}
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
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" >
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="收信人:" />
<EditText
android:id="@+id/tel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus android:layout_width="wrap_content" />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内容:" />
<EditText
android:id="@+id/content"
android:layout_width="260px"
android:layout_height="wrap_content"
android:ems="10"
android:lines="6"
android:background="@layout/edit_bg" />
</TableRow>
<Button
android:id="@+id/send"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="send"
android:text="发送短信" />
</TableLayout>
</LinearLayout>
这里我是运用了edit_bg.xml来修饰内容框:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#EFEFEF"/>
<corners
android:radius="3dip"
/>
<stroke
android:width="0.5px"
android:color="#505050"/>
</shape>
</item>
</layer-list>
相应的,也需要注意的是必须要设置相对应的权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
本文介绍了一个简单的手机应用程序,该程序实现了拨打电话和发送短信的基本功能。通过监听ImageButton的触摸事件来改变按钮外观,并使用ACTION_CALL和ACTION_SENDTO来分别实现拨号和发送短信的功能。
1010

被折叠的 条评论
为什么被折叠?



