首页 文章 精选 留言 我的

精选列表

搜索[android things],共10000篇文章
优秀的个人博客,低调大师

Android PopupWindow使用

1、含义 写的第一篇技术文章还有点小激动,话说popupwindow顾名思义就是类似于对话框样式布局显示,但是却有别于对话框,到底哪里有区别呢,还请客官您细细观看。 2、区别 1、对话框位置相对来说比较固定,而popupwindow位置相对随意一些,可以自由控制。 2、对话框是线程非阻塞的,而popupwindow是线程阻塞的。 3、代码说明 1、 话不多说,规矩我懂,先上图(样式比较丑还请您见谅): 2、先看popupwindow代码,容我细细道来: 1)、首先自定义一个popupwindow public class AddPopuwindow extends PopupWindow { public View mView; public AddPopuwindow(Activity context) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mView = inflater.inflate(R.layout.popuwindow_dialog, null); int height = context.getWindowManager().getDefaultDisplay().getHeight(); int width = context.getWindowManager().getDefaultDisplay().getWidth(); // 设置选择的popuwndow的View this.setContentView(mView); // 设置弹出的popuwindow的宽 this.setWidth(width / 2 + 50); // 设置弹出的popuwndow的高 this.setHeight(LayoutParams.WRAP_CONTENT); // 设置popuwindow的弹出窗体是否可以点击 this.setFocusable(true); this.setOutsideTouchable(true); // 刷新状态 this.update(); // 实例化一个colorDrawable颜色为半透明 ColorDrawable colorDrawable = new ColorDrawable(0000000000); // 点击返回键和其他地方使其消失,设置了这个才能触发OnDismissListener,设置其他控件变化等操作 this.setBackgroundDrawable(colorDrawable); // 设置SelectPicPopupWindow弹出窗体动画效果 this.setAnimationStyle(R.style.AnimationPreview); // 绑定布局 LinearLayout addTaskLayout = (LinearLayout) mView .findViewById(R.id.add_task_layout); addTaskLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // 关闭popuwindow AddPopuwindow.this.dismiss(); } }); } //显示popupwindow public void showPopuwindow(View view) { if (!this.isShowing()) { // 以下拉方式显示popuwindow this.showAsDropDown(view, view.getLayoutParams().width / 2, 18); } else { this.dismiss(); } } 2、怎么调用呢?当然是绑定布局然后直接调用了 Button mBtnAdd; mBtnSet.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AddPopuwindow popuwindow = new AddPopuwindow(MainActivity.this); popuwindow.showPopuwindow(mBtnAdd); } }); 3、布局文件(图片): 布局文件 4、结语 因为小弟第一次写技术类文章,还有排版什么的,不太熟悉,所以请各位看官多多见谅,请各位轻点打脸。

优秀的个人博客,低调大师

Android——蓝牙连接

今天要做一个蓝牙4.0的通信,先做个小test,之后再看看具体的api: @Override public void onClick(View v) { switch (v.getId()) { case R.id.scan: // bluetoothService.startBluetooth(); //1,初始化蓝牙适配器 final BluetoothManager bluetoothManager=(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter bluetoothAdapter= BluetoothAdapter.getDefaultAdapter(); //2,开启蓝牙 if(bluetoothAdapter==null || !bluetoothAdapter.isEnabled()){ Intent enableBtIntent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent,1); } //3,扫描附近的设备 List<Map<String,String>> deviceList=new ArrayList<>(); if(bluetoothAdapter.isDiscovering()){ bluetoothAdapter.cancelDiscovery(); }else{ //每次扫描之前都先判断一下是否存在已久配对的设备 Set<BluetoothDevice> paireDevices=bluetoothAdapter.getBondedDevices(); if(paireDevices.size()>0){ for(BluetoothDevice device :paireDevices){ Map map=new HashMap(); map.put("deviceName",device.getName()); map.put("deviceAddress",device.getAddress()); deviceList.add(map); } Log.i("扫描到的已连接设备:",deviceList.toString()); } bluetoothAdapter.startDiscovery();//开始搜索 } bluetoothAdapter.cancelDiscovery();//停止扫描 //4,通过Mac地址发送连接请求 String myMac=""; for(Map map : deviceList){ if(map.get("deviceName").toString().equals("iPhone-lhc")){ myMac=map.get("deviceAddress").toString(); } } BluetoothDevice device=bluetoothAdapter.getRemoteDevice(myMac); Log.i("我的Iphone手的地址为:",device.getAddress()); //5,通过UUID使两个设备之间建立连接 try{ BluetoothSocket socket=device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB")); socket.connect();//通过socket连接服务器,这是一个阻塞的过程,直到连接建立或者连接失败 }catch(Exception exception){ Log.e("建立蓝牙连接失败:", exception.getMessage()); } break; } } 未完待续。。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册