안 드 로 이 드 QR 코드 명함 만 들 기
4006 단어 Android
zxing 다운로드 주소:http://download.csdn.net/detail/qq55214/9665820
public class MainActivity extends AppCompatActivity {
private static final int QR_WIDTH = 400;
private static final int QR_HEIGHT = 400;
private ArrayList card = new ArrayList<>();
private ImageView mIv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mIv = (ImageView) findViewById(R.id.main_iv);
card.clear();
card.add(" ");
card.add("18766561626");
card.add(" _ ");
card.add(" _ ");
card.add(" _ ");
card.add(" _ ");
card.add(" _ ");
TextView tv = (TextView) findViewById(R.id.main_tv);
tv.setText(card.toString());
}
/**
*
* @param view
*/
public void qrcode(View view){
mIv.setImageBitmap(createQrcode(enQrCodeOneContact(card)));
}
/**
*
*
* @param qrcode
*/
public Bitmap createQrcode(String qrcode) {
try {
QRCodeWriter writer = new QRCodeWriter();
if (qrcode == null || "".equals(qrcode) || qrcode.length() < 1) {
Toast.makeText(MainActivity.this," ",Toast.LENGTH_SHORT).show();
return null;
}
// TODO
Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
// TODO 、
BitMatrix bitMatrix = writer.encode(qrcode,
BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints);
int[] pixels = new int[QR_WIDTH * QR_HEIGHT];
for (int y = 0; y < QR_HEIGHT; y++) {
for (int x = 0; x < QR_WIDTH; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * QR_WIDTH + x] = 0xff0000ff;
} else {
pixels[y * QR_WIDTH + x] = 0xffffffff;
}
}
}
Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT,
Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
return bitmap;
} catch (Exception e) {
Log.e("All_Exception", e.toString());
Toast.makeText(MainActivity.this," , ",Toast.LENGTH_SHORT).show();
}
return null;
}
/**
* NameCard
* @param nameCard
* @return
*/
public String enQrCodeOneContact(ArrayList nameCard){
StringBuilder ss = new StringBuilder();
ss.append(String.format("BEGIN:VCARD
" +
"VERSION:3.0
" +
"N:%s",nameCard.get(0)))
.append(String.format("
TEL;iPhone;VOICE:%s",nameCard.get(1)))
.append("
ORG:" + nameCard.get(2))
.append("
TITLE:"+nameCard.get(3))
.append("
ROLE:"+nameCard.get(4))
.append("
EMAIL:"+nameCard.get(5))
.append("
ADR:"+nameCard.get(6))
.append("
END:VCARD");
return ss.toString();
}
}
명함 은 공용 VCARD 형식 입 니 다. 잘 모 르 는 동 화 는 참고 하 시기 바 랍 니 다.
http://blog.csdn.net/johnsuna/article/details/8482454
각 필드 를 대응 하 더 라 도 코드 에 주석 이 잘 들 어 있 습 니 다.
또한 이 QR 코드 문자 생 성 길 이 는 제한 되 어 있 으 며 내용 이 너무 많 지 않 습 니 다...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.