Android开发——实现一个拨号器(一)

安卓开发教程:【天哥】Android开发视频教程最新版 Android Studio开发_哔哩哔哩_bilibili

开发平台:Android Stdio(和idea里面自带的一模一样,直接分开用Android Stdio挺好)

下载地址:Download Android Studio and SDK tools  |  Android Developers

准备工作

下载好开发工具,Android Studio。下载SDK,注意版本,我之前自己默认下载的31,但是好像不适配,R30可以。

查看自己下没下载,以及版本是什么,可以在这个地方管理:

Android开发——实现一个拨号器(一)_第1张图片

 Android开发——实现一个拨号器(一)_第2张图片

开发流程

新建文件

 先来熟悉目录

Android开发——实现一个拨号器(一)_第3张图片

 Android开发——实现一个拨号器(一)_第4张图片

 每当我们需要设计一个页面时,必须在layout下设计一个.xml文档描述布局,在java中设计一个java活动类描述页面逻辑,并且要在配置文件中注册这个活动,具体可以走如下流程:

1.先创建java活动类

Android开发——实现一个拨号器(一)_第5张图片

 2.发现会同步生成对应的布局文件Android开发——实现一个拨号器(一)_第6张图片

Android开发——实现一个拨号器(一)_第7张图片

3.同时在配置文件中也自动登记了相应的活动 (但如果当时创建的不是活动,而只是一个简单的java文件,23都需要自己手动完成)

Android开发——实现一个拨号器(一)_第8张图片

coding

先写布局文件activity_main.xml:

  1. 设计整体页面的布局,主要有LinearLayout,RelativeLayout。设计宽高以及内外边距等。
  2. 设计显示号码的输入框,实现拨号可以实时显示在这个输入框中。使用editview部件
  3. 设计拨号盘,可以点击拨号盘实现获取拨号按钮代表的数字、执行按钮所代表的的功能。先设计一个TableLayout,包括4个TableRow,每个TableRow包含3个Button或者ImageButton。

每个组件基本都需要设置id,宽,高,文字,文字大小,文字颜色,内外边距,按钮要设计绑定点击事件。

再完成activity_main.xml布局对应的活动类:

  1. 设计每个按钮点击之后的事件逻辑,例如点击数字1,要让数字显示在编辑框;点击拨号,要检测号码正确性,以及向拨号框所显示的号码,调用安卓所提供的的拨号接口进行拨号;点击删除键,输入不为空的时候将输入框中末尾的数字删掉。
  2. 扩展:当添加联系人按钮的时候,点击联系人键跳转到通讯录页面。
  3. 扩展:设置聊天记录的查询……

补充细节:

设计布局时:

  1. 实现点击按钮的时候有按键被点击的效果,点击之后按钮背景颜色变深。
  2. 按钮可以设置圆角。
  3. 为功能键设置图片。
package com.example.bydialer;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private Button num1,num2,num3,num4,num5,num6,num7,num8,num9,num0,numX,numJ,Dial,contact,delete;
    private EditText editText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText) findViewById(R.id.display);

    }
    public void clickNum(View view){
        String str = editText.getText().toString();
        str += view.getTag().toString();
        editText.setText(str);
    }

    public void contacts(View view){   //查看联系人的功能还没讲完,这个部分的函数体可以先空着
        //Intent intent = new Intent(MainActivity.this,ContactActivity.class);
        //startActivity(intent);
    }


    public void dial(View view){
        String str = editText.getText().toString();
        if ((str !=null) && (!str.trim().equals(""))){
            Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+str));
            startActivity(intent);
        }
        else{
            Toast.makeText(MainActivity.this,"请输入号码",Toast.LENGTH_LONG).show();
        }
    }

    public void delete(View view){
        String str = editText.getText().toString();
        if((str != null) && (!str.trim().equals(""))) {
            str = str.substring(0, str.length() - 1);
            editText.setText(str);
        }
    }

}

 activity_main.xml





    

    

        

            
        

        

            

                

                

                
            

            

                

                

                
            

            

                

                

                
            

            

                

                

                
            
        

        

            

            

            

            
        
    

 contacts.xml(设计联系人按钮的格式)



    
        
            
            
        

    
    
        
            
            
        
    

delete.xml(设计删除按钮的格式)



    
        
            
            
        


    
    
        
            
            
        
    

 dialer.xml(设计拨号按钮的格式)



    
        
            
            
        


    
    
        
            
            
        
    

num.xml(设计数字1-0,*,#按钮的格式)



    
        
            
            
        

    
    
        
            
            
        
    

ps:@drawable/照片名(这些照片我都放在了res/drawable-xxxhdpi,等下会有整个工程文件的链接)

运行模拟

让代码跑起来,验证方式有两种,模拟器&真机验证。

模拟器:配置avd模拟器

Android开发——实现一个拨号器(一)_第9张图片Android开发——实现一个拨号器(一)_第10张图片

 Android开发——实现一个拨号器(一)_第11张图片

选择系统镜像文件

 Android开发——实现一个拨号器(一)_第12张图片

 运行项目

真机:

手机打开开发者模式。

开发者模式下允许usb传输数据。

用数据线连接到电脑。

上侧会自动弹出识别手机型号。     

 启动项目,安装app,就可以了。

效果如下图:

 Android开发——实现一个拨号器(一)_第13张图片        Android开发——实现一个拨号器(一)_第14张图片

工程文件:

https://github.com/Biangbangbing/ByDial

你可能感兴趣的:(android开发,android,java,apache,android,studio)