自制手机APP源代码
最开始是布局代码:
<span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/kp"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/LinearLayout6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/EditText1"
android:layout_width="260dip"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="6dip"
android:background="#FFFFFF"
android:editable="false"
android:enabled="false"
android:singleLine="true"
android:text="@string/default_number"
android:textColor="#000000"
android:textSize="24dip" />
<Button
android:id="@+id/Button_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/deldown"
android:text=" "
android:textSize="24dip" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="181dp"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/LinearLayout2"
android:layout_width="fill_parent"
android:layout_height="32dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/Button1"
android:layout_width="48dp"
android:layout_height="match_parent"
android:background="@drawable/c1"
android:text="1"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button2"
android:layout_width="49dp"
android:layout_height="52dp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:background="@drawable/c2"
android:text="2"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button3"
android:layout_width="58dp"
android:layout_height="match_parent"
android:background="@drawable/c3"
android:text="3"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout3"
android:layout_width="fill_parent"
android:layout_height="20dp"
android:layout_marginTop="20dip"
android:layout_weight="0.21"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/Button4"
android:layout_width="33dp"
android:layout_height="54dp"
android:background="@drawable/c4"
android:text="4"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button5"
android:layout_width="55dp"
android:layout_height="match_parent"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:background="@drawable/c5"
android:text="5"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button6"
android:layout_width="56dp"
android:layout_height="36dp"
android:background="@drawable/c6"
android:text="6"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout4"
android:layout_width="fill_parent"
android:layout_height="22dp"
android:layout_marginTop="20dip"
android:layout_weight="0.11"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/Button7"
android:layout_width="31dp"
android:layout_height="match_parent"
android:background="@drawable/c7"
android:text="7"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button8"
android:layout_width="84dp"
android:layout_height="32dp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:background="@drawable/c8"
android:text="8"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button9"
android:layout_width="68dp"
android:layout_height="34dp"
android:background="@drawable/c9"
android:text="9"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout5"
android:layout_width="fill_parent"
android:layout_height="25dp"
android:layout_marginTop="20dip"
android:layout_weight="0.20"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/Button_dial"
android:layout_width="wrap_content"
android:layout_height="46dp"
android:background="@drawable/dial"
android:text=" "
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button0"
android:layout_width="wrap_content"
android:layout_height="43dp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:background="@drawable/c0"
android:text="0"
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/Button_cancel"
android:layout_width="wrap_content"
android:layout_height="42dp"
android:background="@drawable/dialcancel"
android:text=" "
android:textSize="54dip"
android:textStyle="bold"
android:typeface="serif" />
</LinearLayout>
</LinearLayout>
</LinearLayout></span>
然后是主函数
package com.example.mzphone;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.net.Uri;
public class MainActivity extends Activity {
int[] numButtonIds = { R.id.Button0, R.id.Button1, R.id.Button2,
R.id.Button3, R.id.Button4, R.id.Button5, R.id.Button6,
R.id.Button7, R.id.Button8, R.id.Button9 };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//为删除键添加监听器
Button bDel=(Button)this.findViewById(R.id.Button_del);
bDel.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText et=(EditText)findViewById(R.id.EditText1);
String num=et.getText().toString();
num=(num.length()>1)?num.substring(0,num.length()-1):"";
et.setText(num);
}
});
//为拨号键添加监听器
Button bDial=(Button)this.findViewById(R.id.Button_dial);
bDial.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText et=(EditText)findViewById(R.id.EditText1);
String num=et.getText().toString();
Intent dial=new Intent();
dial.setAction("android.intent.action.CALL");
dial.setData(Uri.parse("tel://"+num));
startActivity(dial);
}
});
//为退出按钮添加监听器
Button bCancel=(Button)this.findViewById(R.id.Button_cancel);
bCancel.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.this.finish();
}
});
//为0~9数字按钮创建监听器
View.OnClickListener numListener=new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Button tempb=(Button)v;
EditText et=(EditText)findViewById(R.id.EditText1);
et.append(tempb.getText());
}
};
//为所有的数字按键添加监听器
for (int id:numButtonIds)
{
Button tempb=(Button)this.findViewById(id);
tempb.setOnClickListener(numListener);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}<span style="font-size:18px;">
</span>
至于权限文件,只需添加一行:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.CALL_PHONE"/> //这一行是需要自己添加的
然后运行就可以啦
绝对可以运行,至于layout中涉及到的一些照片,按自己的喜好选择几张就行啦