Android Drawable 转 bitmap 热敏打印

最近工作需要Android设备连接热敏打印机(送餐单子),需要打印两种图片,一种是生成的二维码,一种是drawable图片,第一种按照打印机的API来没有问题,第二种打印机有提供接口,但是当把图片放进去后打印出来往往都被拉伸或缩小变形了,后来只能转为 bitmap的图片,但是不同的打印机要求不同,有的需要重新画成bitmap有的直接转为bitmap就可以了,这个需要根据具体的打印机打印尝试:

方法一:

var widthTemp = width - 25
var heightTemp = height - 25

val bitmap = Bitmap
    .createBitmap(
        widthTemp,
        heightTemp,
        Bitmap.Config.RGB_565
    ) //按指定参数创建一个空的Bitmap对象
val canvas = Canvas(bitmap)
//canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, widthTemp, heightTemp)
drawable.draw(canvas)
return bitmap

首先规定bitmap的宽高,用bitmap的createBitmap方法创建一个bitmap,然后利用canvas和drawable的draw方法将drawable图片填充到bitmap上;

方法二:

drawable.toBitmap()

drawable自带方法直接转为bitmap

你可能感兴趣的:(android,android)