Android 로고 가 있 는 QR 코드 상세 설명 및 인 스 턴 스

4536 단어 AndroidlogoQR 코드
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();
    }
  }
 
}

읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기