Android 로고 가 있 는 QR 코드 상세 설명 및 인 스 턴 스
오 랜 만 에 블 로 그 를 쓰 게 되 었 습 니 다.설날 이 다가 오 면서 회사 의 일 도 많 지 않 았 습 니 다.마침 친구 들 과 놀 러 나 갔 습 니 다.친 구 는 PHP 를 하 는 사람 입 니 다.매일 회사 에서 QR 코드 와 위 챗 결제 에 관 한 것 을 하 는 지 말 했 습 니 다.출근 시간 이 바 쁘 지 않 아서 마음대로 하 겠 습 니 다.
QR 코드(Quick Response Code)는 QR 코드 라 고도 부 르 는데 특정한 기하학 적 도형 으로 일정한 규칙 에 따라 평면(2 차원 방향)에 분포 되 어 있 는 흑백 이 서로 어 우 러 진 도형 으로 모든 정보 데이터 의 열쇠 이다.현대 상업 활동 에서 만약 에 한 제품 이 QR 코드 를 통 해 무엇 을 방문 할 수 없다 면 분명히 성공 하지 못 할 것 이다.QR 코드 를 많이 만 드 는 jar 가방 은 Zxing.jar 와 core.jar 가 있 는데 사실은 모두 com.google.zxing 에 사 용 된 것 으로 대체적으로 대동소이 하 다.
직접 코드 올 리 기:
activity_main.xml
<RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.MainActivity" >
<ImageView
android:id="@+id/code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/hello_world" />
</RelativeLayout>
MainActivity
package com.example;
import Java.util.Hashtable;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Bundle;
import android.widget.ImageView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
public class MainActivity extends Activity {
private ImageView code;
private final int QR_WIDTH=300;
private final int QR_HEIGHT=300;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
code=(ImageView) findViewById(R.id.code);
createImage("weixin") ;
}
// QR
private void createImage(String text) {
try {
// core
QRCodeWriter writer = new QRCodeWriter();
//
BitMatrix martix = writer.encode(text, BarcodeFormat.QR_CODE,
QR_WIDTH, QR_HEIGHT);
// ,
Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix = new QRCodeWriter().encode(text,
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
for (int x = 0; x < QR_WIDTH; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * QR_WIDTH + x] = 0xff000000;//
} else {
pixels[y * QR_WIDTH + x] = 0xffffffff;//
}
}
}
//------------------ ------------------//
Bitmap logoBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT,
Bitmap.Config.ARGB_8888);
//
bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
Canvas canvas = new Canvas(bitmap);
//
canvas.drawBitmap(bitmap, 0,0, null);
// ,
canvas.drawBitmap(logoBmp, bitmap.getWidth() / 2
- logoBmp.getWidth() / 2, bitmap.getHeight()
/ 2 - logoBmp.getHeight() / 2, null);
//------------------ logo ------------------//
code.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}
}
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.