private void writeOne() { int len = buffer.position(); if (len == 0) return; buffer.rewind(); buffer.limit(len); BitMatrix bitmatrix; try { bitmatrix = new MultiFormatWriter().encode(buffer.toString(), codeFormat, displaySize, displaySize, hints); } catch (WriterException e) { Toast.makeText(getApplicationContext(), e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); cancel(); return; } buffer.position(len); int[] pixels = new int[displaySize * displaySize]; int pixelIndex = 0; for (int y = 0; y < displaySize; y++) { for (int x = 0; x < displaySize; x++) { pixels[pixelIndex ++] = bitmatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF; } } bitmap.setPixels(pixels, 0, displaySize, 0, 0, displaySize, displaySize); ImageView view = (ImageView) findViewById(R.id.image_view); view.setImageBitmap(bitmap); TextView codeLabel = (TextView) findViewById(R.id.code_label); codeLabel.setText(String.format(getString(R.string.send_code_label), index, total, len, offset - len)); }