我想创建一个.png来打印它。该文件应具有此布局(100x35mm)
我使用Zxing项目创建了QrCode。
public Bitmap createQrCode(String stringForQrCode){
com.google.zxing. MultiFormatWriter writer =new MultiFormatWriter();
String data = stringForQrCode;
String finaldata = Uri.encode(data, "utf-8");
BitMatrix bm = null;
try {
bm = writer.encode(finaldata, BarcodeFormat.QR_CODE,185, 185);
} catch (WriterException e) {
e.printStackTrace();
}
Bitmap ImageBitmap = Bitmap.createBitmap(185, 185, Bitmap.Config.ARGB_8888);
for (int i = 0; i < 185; i++) {//width
for (int j = 0; j < 185; j++) {//height
assert bm != null;
ImageBitmap.setPixel(i, j, bm.get(i, j) ? Color.BLACK: Color.WHITE);
}
}
return ImageBitmap;
}
但是我怎样才能将这些图像与我的两个字符串结合起来。我是否必须创建新的位图?以及如何选择不同项目的位置。
答案 0 :(得分:0)
首先创建图像和文本父视图的位图
sort_position
现在可以根据需要将此位图转换为任何格式
答案 1 :(得分:0)
我通过从所需的视图创建位图来解决它。因此,我创建了一个包含我的qrcode和两个字符串的View。但是我没有显示View,而是在invisible
上设置它,并使用以下代码创建并保存位图。
public static Bitmap getBitmapFromView(View view, int width, int height) {
Bitmap returnedBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
Drawable bgDrawable =view.getBackground();
if (bgDrawable!=null) {
bgDrawable.draw(canvas);
} else {
canvas.drawColor(Color.WHITE);
}
view.draw(canvas);
return returnedBitmap;
}