- public class MainActivity extends Activity {
- private EditText etCompany;
- private EditText etPhone;
- private EditText etEmail;
- private EditText etWeb;
- private Bitmap logo;
- private static final int IMAGE_HALFWIDTH = 40;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- logo=BitmapFactory.decodeResource(super.getResources(),R.drawable.y014);
- etCompany =(EditText) findViewById(R.id.etCompany);
- etPhone=(EditText) findViewById(R.id.etPhone);
- etEmail =(EditText) findViewById(R.id.etEmail);
- etWeb =(EditText) findViewById(R.id.etWeb);
- findViewById(R.id.but).setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
-
- String company=etCompany.getText().toString().trim() ;
- String phone =etPhone .getText().toString().trim() ;
- String email = etEmail.getText().toString().trim() ;
- String web = etWeb.getText().toString().trim() ;
-
- String contents= "BEGIN:VCARD\nVERSION:3.0\nORG:"+company+"\nTEL:"+phone+"\nURL:"+web+"\nEMAIL:"+email+"\nEND:VCARD";
- try {
-
- Bitmap bm=createCode(contents,logo,BarcodeFormat.QR_CODE);
- ImageView img=(ImageView)findViewById(R.id.imgCode) ;
-
- img.setImageBitmap(bm);
- } catch (WriterException e) {
-
- e.printStackTrace();
- }
-
- }
- });
-
- }
-
-
-
-
-
-
-
-
-
- public Bitmap createCode(String string,Bitmap mBitmap, BarcodeFormat format)
- throws WriterException {
- Matrix m = new Matrix();
- float sx = (float) 2 * IMAGE_HALFWIDTH / mBitmap.getWidth();
- float sy = (float) 2 * IMAGE_HALFWIDTH
- / mBitmap.getHeight();
- m.setScale(sx, sy);
-
- mBitmap = Bitmap.createBitmap(mBitmap, 0, 0,
- mBitmap.getWidth(), mBitmap.getHeight(), m, false);
- MultiFormatWriter writer = new MultiFormatWriter();
- Hashtable<EncodeHintType, String> hst = new Hashtable<EncodeHintType, String>();
- hst.put(EncodeHintType.CHARACTER_SET, "UTF-8");
- BitMatrix matrix = writer.encode(string, format, 400, 400, hst);
- int width = matrix.getWidth();
- int height = matrix.getHeight();
- int halfW = width / 2;
- int halfH = height / 2;
- int[] pixels = new int[width * height];
- for (int y = 0; y < height; y++) {
- for (int x = 0; x < width; x++) {
- if (x > halfW - IMAGE_HALFWIDTH && x < halfW + IMAGE_HALFWIDTH
- && y > halfH - IMAGE_HALFWIDTH
- && y < halfH + IMAGE_HALFWIDTH) {
-
- pixels[y * width + x] = mBitmap.getPixel(x - halfW
- + IMAGE_HALFWIDTH, y - halfH + IMAGE_HALFWIDTH); } else {
- if (matrix.get(x, y)) {
- pixels[y * width + x] = 0xff000000;
- }
- }
-
- }
- }
- Bitmap bitmap = Bitmap.createBitmap(width, height,
- Bitmap.Config.ARGB_8888);
-
- bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
- return bitmap;
- }
-
- }