01
背景
随着Android技术发展,经常有将某个界面截图保存下来分享,或者生成用户或者商品二维码图片方便加好友或者购买,所以这个功能在实际应用中非常有用,下面我将重点针对这些情况进行讲解,废话不多说了,先画个序列图,如下:

序列图
实现步骤:
步骤一:创建View;
首先,我们需要创建一个View,这个View可以是任何view,比如一个TextView或者一个Image View,也可以是LinearLayout或者ScrollView,或者用户自定义的控件,这个没有要求。

步骤二:将View转化成Bitmap;
概念一,Bitmap代表一张图片,其存储的是像素点,安卓中不同类型的图片如jpeg,png都可以用Bitmap表示。安卓中对图片的裁剪、缩放等一系列的操作都需要把图片文件以Bitmap的形式加载到内存中进行操作。Bitmap的创建通常是使用BitmapFactory类来创建的,因为通过看Bitmap构造源码可知使用构造函数来创建Bitmap对象的操作都是再jni层来完成的。我们只需使用BitmapFactory即可创建出Bitmap对象。具体Bitmap的构造和内部方法大家可以自定查阅api进行学习,就不多说了。

ALPHA_8——代表8位Alpha位图(只有A通道)
ARGB_4444——代表16位ARGB位图
ARGB_8888——代表32位ARGB位图
RGB_565——代表16位RGB位图(没有A通道)
位图位数越高代表其可以存储的颜色信息越多,当然图像也就越逼真,一般默认用8888。
Canvas是Android图形系统中一个核心的类,它允许你在屏幕上绘制图形,文字等。Canvas对象本身并没有实际的绘图能力,它需要与bitmap或者其他的drawable关联。Canvas的工作原理是:你创建一个bitmap,并且为它创建一个Canvas对象,然后你可以在这个bitmap上绘制你想要的任何东西,功能强大,具体的功能小伙伴可以自行学习哈。
步骤三:保存或分享Bitmap。</