蓝牙聊天App设计1:Android Studio制作蓝牙聊天通讯软件(UI界面设计)

慈云数据 2024-05-13 技术支持 92 0

前言:蓝牙聊天App设计全部有三篇文章(一、UI界面设计,二、蓝牙搜索配对连接实现,三、蓝牙连接聊天),这篇文章是一、UI界面设计

课程1:Android Studio小白安装教程,以及第一个Android项目案例Hello World”的调试运行

课程2:蓝牙聊天App设计1:Android Studio制作蓝牙聊天通讯软件(UI界面设计)

课程3:蓝牙聊天App设计2:Android Studio制作蓝牙聊天通讯软件(蓝牙搜索配对连接)

课程4:蓝牙聊天App设计3:Android Studio制作蓝牙聊天通讯软件(完结,蓝牙连接聊天,结合生活情景进行蓝牙通信的通俗讲解,以及代码功能实现,内容详细,讲解通俗易懂)

本次项目任务效果图

共有两个界面,一个是蓝牙搜索界面,另一个是聊天界面,效果界面分别如下,文末附有工程源码分享

在这里插入图片描述

在这里插入图片描述

一、创建空项目

创建一个新项目并运行成功第一个程序“Hello World!”

Android Studio小白安装教程,以及第一个Android项目案例“Hello World”的调试运行

二、实现第一个界面(蓝牙搜索界面)

1、新建包“MyClass”,然后在包里添加新类“DeviceClass.java”和“DeviceAdapter.java”,用于存储和显示蓝牙内容

在这里插入图片描述

(1)新建包“MyClass”

在这里插入图片描述

(2)新建类“DeviceClass.java”且完整代码如下

在这里插入图片描述

package MyClass;
/**
 * Created by WYB on 2023/4/27.
 */
public class DeviceClass {
    private String bName; //蓝牙名称
    private String bAdress; //蓝牙地址
    public DeviceClass(String bName,String bAdress){
        this.bName = bName;
        this.bAdress = bAdress;
    }
    public String getbName(){
        return bName;
    }
    public String getbAdress(){
        return bAdress;
    }
}

(3)新建类“DeviceAdapter.java”且完整代码如下

在这里插入图片描述

ppackage MyClass;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import com.example.wyb.bluetoothchatui.R;
import java.util.List;
/**
 * Created by WYB on 2023/4/27.
 */
public class DeviceAdapter extends ArrayAdapter {
    private int resourceId;
    public DeviceAdapter(Context context, int textViewResourceId, List objects) {
        super(context, textViewResourceId, objects);
        resourceId = textViewResourceId;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        DeviceClass device = getItem(position);
        View view = convertView;
        if (view == null) {
            view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);
        }
        TextView textView1 = (TextView) view.findViewById(R.id.textView1);
        TextView textView2 = (TextView) view.findViewById(R.id.textView2);
        textView1.setText(device.getbName());
        textView2.setText(device.getbAdress());
        return view;
    }
}

2、由于原有Button(发送按键)和ListView(蓝牙展示菜单)比较呆板,这里对这两个控件进行自定义样式

在这里插入图片描述

(1)新建“button_style.xml”,且完整代码如下:

在这里插入图片描述


      //设置长和宽
      //设置外边框厚度和颜色
      //设置内色
      //设置圆弧形状的弧度

(2)新建“listview_style1.xml”,且完整代码如下:

在这里插入图片描述


    
    

3、界面一设计主要代码

(1)在“layout”中新建“device_item.xml”,且完整代码如下:

在这里插入图片描述


    
        
        
    
    
        
        
    

(2)“activity_main.xml”的完整代码如下:


    
    
    
    
    

(3)“MainActivity.java”的完整代码如下

package com.example.wyb.bluetoothchatui;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import MyClass.DeviceAdapter;
import MyClass.DeviceClass;
public class MainActivity extends AppCompatActivity {
    private DeviceAdapter mAdapter1,mAdapter2;
    private List mbondDeviceList = new ArrayList();//搜索到的所有已绑定设备保存为列表
    private List mfindDeviceList = new ArrayList();//搜索到的所有未绑定设备保存为列表
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Show_listView();//显示搜索内容
    }
    public void Show_listView(){
        DeviceClass bondDevice;
        DeviceClass findDevice;
        //显示已绑定设备
        for(int i=1;i
            bondDevice = new DeviceClass("蓝牙"+i,"98:EF:22:8A:15:25");
            mbondDeviceList.add(bondDevice);
        }
        mAdapter1 = new DeviceAdapter(MainActivity.this, R.layout.device_item, mbondDeviceList);
        ListView listView1 = (ListView)findViewById(R.id.listview1);
        listView1.setAdapter(mAdapter1);
        mAdapter1.notifyDataSetChanged();
        listView1.setOnItemClickListener(toMainActivity2);//设备点击事件,点击设备名称后执行toMainActivity2
        //显示未绑定设备
        for(int i=1;i
            findDevice = new DeviceClass("蓝牙"+i,"98:EF:22:8A:15:25");
            mfindDeviceList.add(findDevice);
        }
        mAdapter2 = new DeviceAdapter(MainActivity.this, R.layout.device_item, mfindDeviceList);
        ListView listView2 = (ListView)findViewById(R.id.listview2);
        listView2.setAdapter(mAdapter2);
        mAdapter2.notifyDataSetChanged();
    }
    //点击设备后执行的函数
    private AdapterView.OnItemClickListener toMainActivity2 =new AdapterView.OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon