Code Monkey home page Code Monkey logo

printdemo's Introduction

PrintDemo

这个一个Android蓝牙打印小票demo,类似美团外卖小票打印 和 新手指引蒙层提示demo

一 小票打印
先看一下效果图:

image   image

demo里主要是使用汉印打印机进行蓝牙小票打印,它还支持WiFi打印,USB打印和串口打印,SDK对接的话去汉印官网下载相应的zip包,里面有PDF文档和代码案例,文档上功能还是比较多的,比如与蓝牙进行关联以及各种状态获取以及各种属性设置等,项目里面我放了一份PDF的文档,就在info文件夹下。

但像打印的小票排版样式与细节这块相对是比较粗糙,直接在代码里写死的样式,而大多数平台的小票排版都不太一样,这里就涉及到自定义排版,而我这里主要讲的就是小票打印的排版样式了。

我在demo中已经把排版封装到 PrintUtil,主要的信息打印,商品名字、数量和小计都做了自适应兼容,多行等展示亦不会打乱排版,只管放心使用就好。

当然,个别特殊都样式设置就看着改,基本的样式我也封装了些方法,不够再加,如是接的sdk就根据文档给的功能增加,若是按原生的写法通过字节流传输给蓝牙打印机的,也可以将指令写入封装成方法进行添加设置。

demo里面还用到了lombok注解框架,主要是用于注解数据模型的get 和 set方法,这样就不需要写那么多凌乱的get() 和 set()了。

29/4.
1 新增选择打印机功能
2 新增爱印打印机支持
3 优化打印排版格式 (这个排版格式是可以公用的,打印机基本都是可以打印byte数组)

08/5.
1 优化汉印与爱印打印机连接状态回显
2 优化打印机连接成功后弹出提示
3 新增复坤打印机支持


二 新手指引蒙层提示
效果图如下:

image  image  image  image  image  image 

demo里的蒙层提示,主要是将目标控件抠出来,提示指向的既是页面中真实展示的控件,这样蒙层消失后用户的焦点感觉就会如德芙般纵享丝滑。

接下来说一说用法,功能都在HintView这个类里,主要方法有:
1、setTargetView(); 将所要指向的目标view传进去,里面会自动对目标view大小与坐标进行测量,然后在蒙层上复制抠出一个完全透明的view,即可完全展示出底层的目标view 。
2、setCustomGuideView(); 就是将所要提示的带有提示语和箭头的布局view传进,里面会根据所setDirction()设置的方向和setOffset() X轴、Y轴的偏移量将改布局进行排版展示。
3、setMoreTransparentView(); 是传其他需要抠图的控件,需要展示出来的控件里面一并给抠出来
4、setShape(); 设置抠图的形状,有圆形,矩形,椭圆形
5、setOutsideShape(); 设置绘制目标控件的外围形状,一样可以绘制圆形,矩形,椭圆形
6、setOutsideSpace(); 设置外围与目标控件的间隔
7、setRadius(); 设置抠出目标控件的圆角,应与目标控件圆角一致
8、setDotted(); 设置围围形状图的虚线实线
9、setCancelable(); 设置是否点击屏幕消失

项目里还使用了带阴影背景的LCardView 和 自定义圆角图片控件RoundedImageView

在使用时需要注意:当目标控件完全展示出来后再调用展示提示的方法,因为里面需要使用目标控件的信息,目标控件要展示后才能获取到宽高、坐标等信息。

蒙层这里我没有做屏幕适配,具体的屏幕适配就需要自个去实现了,因为每个产品和设计的想法都不同。

printdemo's People

Contributors

weioule avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.