亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

二維碼生成

2019-11-09 15:39:41
字體:
來源:轉載
供稿:網友
//生成二維碼package com.xiaoyu.qrcode;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;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;import java.util.HashMap;import java.util.Map;public class MainActivity extends AppCompatActivity {    PRivate Button bt1;    private Button bt2;    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //找控件        bt1 = (Button) findViewById(R.id.bt1);        bt2 = (Button) findViewById(R.id.bt2);        iv = (ImageView) findViewById(R.id.iv);        initEvens();    }    /**     * 生成二維碼     */    private void initEvens() {        bt1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Bitmap qrBitmap = generateBitmap("薛淺淺",521, 520);                iv.setImageBitmap(qrBitmap);            }        });        /**         * 自定義二維碼         */        bt2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Bitmap qrBitmap = generateBitmap("淺寶寶",520, 521);                //背景圖片                //Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.mipmap.xiaoyu);                //添加logo                Bitmap logoBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.nuanbao);                Bitmap bitmap = addLogo(qrBitmap, logoBitmap);                //Bitmap bitmap2 = addBackground(bitmap, bitmap1);                iv.setImageBitmap(bitmap);            }        });    }    /**     * 二維碼圖片     * @param content     * @param width     * @param height     * @return     */    private Bitmap generateBitmap(String content,int width, int height) {        QRCodeWriter qrCodeWriter = new QRCodeWriter();        Map<EncodeHintType, String> hints = new HashMap<>();        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");        try {            BitMatrix encode = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height);            int[] pixels = new int[width * height];            for (int i = 0; i < height; i++) {                for (int j = 0; j < width; j++) {                    if (encode.get(j, i)) {                        pixels[i * width + j] = 0x00088800;                    } else {                        pixels[i * width + j] = 0xffff666f;                    }                }            }            return Bitmap.createBitmap(pixels, 0, width, width, height, Bitmap.Config.RGB_565);        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    /**     * 自定義二維碼圖片   帶logo     * @param qrBitmap     * @param logoBitmap     * @return     */    private Bitmap addLogo(Bitmap qrBitmap, Bitmap logoBitmap) {        int qrBitmapWidth = qrBitmap.getWidth();        int qrBitmapHeight = qrBitmap.getHeight();        int logoBitmapWidth = logoBitmap.getWidth();        int logoBitmapHeight = logoBitmap.getHeight();        Bitmap blankBitmap = Bitmap.createBitmap(qrBitmapWidth, qrBitmapHeight, Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(blankBitmap);        canvas.drawBitmap(qrBitmap, 0, 0, null);        canvas.save(Canvas.ALL_SAVE_FLAG);        float scaleSize = 1.0f;        while ((logoBitmapWidth / scaleSize) > (qrBitmapWidth / 5) || (logoBitmapHeight / scaleSize) > (qrBitmapHeight / 5)) {            scaleSize *= 2;        }        float sx = 1.0f / scaleSize;        canvas.scale(sx, sx, qrBitmapWidth / 2, qrBitmapHeight / 2);        canvas.drawBitmap(logoBitmap, (qrBitmapWidth - logoBitmapWidth) / 2, (qrBitmapHeight - logoBitmapHeight) / 2, null);        canvas.restore();        return blankBitmap;    }    /**     * 給二維碼圖片加背景     *     */    public static Bitmap addBackground(Bitmap foreground,Bitmap background){        int bgWidth = background.getWidth();        int bgHeight = background.getHeight();        int fgWidth = foreground.getWidth();        int fgHeight = foreground.getHeight();        Bitmap newmap = Bitmap                .createBitmap(bgWidth, bgHeight, Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(newmap);        canvas.drawBitmap(background, 0, 0, null);        canvas.drawBitmap(foreground, (bgWidth - fgWidth) / 2,                (bgHeight - fgHeight) *3 / 5+70, null);        canvas.save(Canvas.ALL_SAVE_FLAG);        canvas.restore();        return newmap;    }}//自定義xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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:orientation="vertical"    tools:context="com.baway.qrcode.MainActivity">    <Button        android:id="@+id/bt1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="生成二維碼" />    <Button        android:id="@+id/bt2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="生成自定義二維碼" />    <ImageView        android:id="@+id/iv"        android:layout_width="200dp"        android:layout_height="200dp" /></LinearLayout>
//基于Android實現個性彩色好看的二維碼http://www.jb51.net/article/80001.htm//識別二維碼
package com.xiaoyu.orcode_identify;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private final static int SCANNIN_GREQUEST_CODE = 1;    /**     * 顯示掃描結果     */    private TextView mTextView ;    /**     * 顯示掃描拍的圖片     */    private ImageView mImageView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mTextView = (TextView) findViewById(R.id.result);        mImageView = (ImageView) findViewById(R.id.qrcode_bitmap);        //點擊按鈕跳轉到二維碼掃描界面,這里用的是startActivityForResult跳轉        //掃描完了之后調到該界面        Button mButton = (Button) findViewById(R.id.button1);        mButton.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent();                intent.setClass(MainActivity.this, MipcaActivityCapture.class);                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                startActivityForResult(intent, SCANNIN_GREQUEST_CODE);            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        switch (requestCode) {            case SCANNIN_GREQUEST_CODE:                if(resultCode == RESULT_OK){                    Bundle bundle = data.getExtras();                    //顯示掃描到的內容                    mTextView.setText(bundle.getString("result"));                    //顯示                    mImageView.setImageBitmap((Bitmap) data.getParcelableExtra("bitmap"));                }                break;        }    }}//
package com.xiaoyu.orcode_identify;import java.io.IOException;import java.util.Vector;import android.app.Activity;import android.content.Intent;import android.content.res.AssetFileDescriptor;import android.graphics.Bitmap;import android.media.AudioManager;import android.media.MediaPlayer;import android.media.MediaPlayer.OnCompletionListener;import android.os.Bundle;import android.os.Handler;import android.os.Vibrator;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;import com.google.zxing.BarcodeFormat;import com.google.zxing.Result;import com.baway.orcode_identify.mining.app.zxing.camera.CameraManager;import com.baway.orcode_identify.mining.app.zxing.decoding.CaptureActivityHandler;import com.baway.orcode_identify.mining.app.zxing.decoding.InactivityTimer;import com.baway.orcode_identify.mining.app.zxing.view.ViewfinderView;/** * Initial the camera * @author Ryan.Tang */public class MipcaActivityCapture extends Activity implements Callback {   private CaptureActivityHandler handler;   private ViewfinderView viewfinderView;   private boolean hasSurface;   private Vector<BarcodeFormat> decodeFormats;   private String characterSet;   private InactivityTimer inactivityTimer;   private MediaPlayer mediaPlayer;   private boolean playBeep;   private static final float BEEP_VOLUME = 0.10f;   private boolean vibrate;   /** Called when the activity is first created. */   @Override   public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_capture);      //ViewUtil.addTopView(getapplicationContext(), this, R.string.scan_card);      CameraManager.init(getApplication());      viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view);      Button mButtonBack = (Button) findViewById(R.id.button_back);      mButtonBack.setOnClickListener(new OnClickListener() {         @Override         public void onClick(View v) {            MipcaActivityCapture.this.finish();         }      });      hasSurface = false;      inactivityTimer = new InactivityTimer(this);   }   @Override   protected void onResume() {      super.onResume();      SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);      SurfaceHolder surfaceHolder = surfaceView.getHolder();      if (hasSurface) {         initCamera(surfaceHolder);      } else {         surfaceHolder.addCallback(this);         surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);      }      decodeFormats = null;      characterSet = null;      playBeep = true;      AudioManager audioService = (AudioManager) getSystemService(AUDIO_SERVICE);      if (audioService.getRingerMode() != AudioManager.RINGER_MODE_NORMAL) {         playBeep = false;      }      initBeepSound();      vibrate = true;   }   @Override   protected void onPause() {      super.onPause();      if (handler != null) {         handler.quitSynchronously();         handler = null;      }      CameraManager.get().closeDriver();   }   @Override   protected void onDestroy() {      inactivityTimer.shutdown();      super.onDestroy();   }   /**    * 處理掃描結果    * @param result    * @param barcode    */   public void handleDecode(Result result, Bitmap barcode) {      inactivityTimer.onActivity();      playBeepSoundAndVibrate();      String resultString = result.getText();      if (resultString.equals("")) {         Toast.makeText(MipcaActivityCapture.this, "Scan failed!", Toast.LENGTH_SHORT).show();      }else {         Intent resultIntent = new Intent();         Bundle bundle = new Bundle();         bundle.putString("result", resultString);//       bundle.putParcelable("bitmap", barcode);         resultIntent.putExtras(bundle);         this.setResult(RESULT_OK, resultIntent);      }      MipcaActivityCapture.this.finish();   }   private void initCamera(SurfaceHolder surfaceHolder) {      try {         CameraManager.get().openDriver(surfaceHolder);      } catch (IOException ioe) {         return;      } catch (RuntimeException e) {         return;      }      if (handler == null) {         handler = new CaptureActivityHandler(this, decodeFormats, characterSet);      }   }   @Override   public void surfaceChanged(SurfaceHolder holder, int format, int width,                        int height) {   }   @Override   public void surfaceCreated(SurfaceHolder holder) {      if (!hasSurface) {         hasSurface = true;         initCamera(holder);      }   }   @Override   public void surfaceDestroyed(SurfaceHolder holder) {      hasSurface = false;   }   public ViewfinderView getViewfinderView() {      return viewfinderView;   }   public Handler getHandler() {      return handler;   }   public void drawViewfinder() {      viewfinderView.drawViewfinder();   }   private void initBeepSound() {      if (playBeep && mediaPlayer == null) {         // The volume on STREAM_SYSTEM is not adjustable, and users found it         // too loud,         // so we now play on the music stream.         setVolumeControlStream(AudioManager.STREAM_MUSIC);         mediaPlayer = new MediaPlayer();         mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);         mediaPlayer.setOnCompletionListener(beepListener);         AssetFileDescriptor file = getResources().openRawResourceFd(               R.raw.beep);         try {            mediaPlayer.setDataSource(file.getFileDescriptor(),                  file.getStartOffset(), file.getLength());            file.close();            mediaPlayer.setVolume(BEEP_VOLUME, BEEP_VOLUME);            mediaPlayer.prepare();         } catch (IOException e) {            mediaPlayer = null;         }      }   }   private static final long VIBRATE_DURATION = 200L;   private void playBeepSoundAndVibrate() {      if (playBeep && mediaPlayer != null) {         mediaPlayer.start();      }      if (vibrate) {         Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);         vibrator.vibrate(VIBRATE_DURATION);      }   }   /**    * When the beep has finished playing, rewind to queue up another one.    */   private final OnCompletionListener beepListener = new OnCompletionListener() {      public void onCompletion(MediaPlayer mediaPlayer) {         mediaPlayer.seekTo(0);      }   };}//配置清單文件
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.xiaoyu.orcode_identify"    >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="16" />    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/APPTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity            android:name=".MipcaActivityCapture"            android:configChanges="orientation|keyboardHidden"            android:screenOrientation="portrait"            android:windowSoftInputMode="stateAlwaysHidden" >        </activity>    </application>    <uses-permission android:name="android.permission.FlashLIGHT" />    <uses-permission android:name="android.permission.VIBRATE" />    <uses-permission android:name="android.permission.CAMERA" />    <uses-feature android:name="android.hardware.camera" />    <uses-feature android:name="android.hardware.camera.autofocus" /></manifest>//簡單的xml// activity_main
<?xml version="1.0" encoding="utf-8"?><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"    tools:context="com.baway.orcode_identify.MainActivity">    <Button        android:id="@+id/button1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:text="掃描二維碼" />    <TextView        android:id="@+id/result"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/button1"        android:lines="2"        android:gravity="center_horizontal"        android:textColor="@android:color/black"        android:textSize="16sp" />    <ImageView        android:id="@+id/qrcode_bitmap"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:layout_alignParentLeft="true"        android:layout_below="@+id/result"/></RelativeLayout>// activity_title
<?xml version="1.0" encoding="utf-8"?><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"    tools:context="com.baway.orcode_identify.MainActivity">    <Button        android:id="@+id/button_back"        android:layout_width="75.0dip"        android:text="返回"        android:background="@drawable/mm_title_back_btn"        android:textColor="@android:color/white"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:layout_marginLeft="2dip" />    <TextView        android:id="@+id/textview_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBaseline="@+id/button_back"        android:layout_alignBottom="@+id/button_back"        android:layout_centerHorizontal="true"        android:gravity="center_vertical"        android:text="二維碼掃描"        android:textColor="@android:color/white"        android:textSize="18sp" /></RelativeLayout>//activity_capture
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent" >    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="fill_parent" >        <SurfaceView            android:id="@+id/preview_view"            android:layout_width="fill_parent"            android:layout_height="fill_parent"            android:layout_gravity="center" />        <com.baway.orcode_identify.mining.app.zxing.view.ViewfinderView            android:id="@+id/viewfinder_view"            android:layout_width="wrap_content"            android:layout_height="wrap_content" />        <include            android:id="@+id/include1"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_alignParentTop="true"            layout="@layout/activity_title" />    </RelativeLayout></FrameLayout>
上一篇:Lua - 20

下一篇:widget反應慢

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久国产精品免费网站| 国产丝袜视频一区| 社区色欧美激情 | 这里只有精品在线播放| 成人看片人aa| 亚洲欧美在线一区二区| 在线亚洲男人天堂| 欧美最猛性xxxx| 91精品国产综合久久香蕉最新版| 亚洲欧美三级伦理| 亚洲美女黄色片| 日韩色av导航| 精品一区二区电影| 亚洲最大成人网色| 色妞一区二区三区| 精品久久久久久久久久国产| 欧美日韩在线观看视频小说| 九九九热精品免费视频观看网站| 欧美贵妇videos办公室| 欧亚精品在线观看| 亚洲国产另类 国产精品国产免费| 国产精品久久电影观看| 丰满岳妇乱一区二区三区| www.色综合| 欧美成人午夜激情视频| 日韩视频中文字幕| 欧美精品aaa| 欧美体内谢she精2性欧美| 亚洲福利在线看| 最近2019年中文视频免费在线观看| 国产精品27p| 亚洲国产精品成人va在线观看| 亚洲大尺度美女在线| 97av视频在线| 精品二区三区线观看| 中文字幕在线成人| 全球成人中文在线| 色偷偷偷亚洲综合网另类| 69久久夜色精品国产7777| 国产精品视频中文字幕91| 尤物99国产成人精品视频| 国产精品视频xxx| 日韩成人av网| 欧美日韩性视频| 777国产偷窥盗摄精品视频| 日韩久久精品成人| 亚洲香蕉在线观看| 久久99精品久久久久久琪琪| 亚洲aⅴ男人的天堂在线观看| 国产成人一区三区| 日韩成人中文字幕在线观看| 最近2019年手机中文字幕| 国产精品久久久久aaaa九色| 亚洲一级片在线看| 国产成人精品国内自产拍免费看| 久久久久久高潮国产精品视| 亚洲美女中文字幕| 精品国产乱码久久久久酒店| 日韩成人xxxx| 欧美丰满少妇xxxxx| 亚洲第一级黄色片| 成人激情电影一区二区| 日韩精品久久久久久福利| 亚洲成人xxx| 亚洲qvod图片区电影| 2019精品视频| 成人情趣片在线观看免费| 国产www精品| 成人在线激情视频| 亲子乱一区二区三区电影| 欧美视频在线免费看| 国产精品视频区| 久久国内精品一国内精品| 久久激情五月丁香伊人| 亚洲亚裔videos黑人hd| 日韩成人在线观看| 在线a欧美视频| 欧美激情亚洲视频| 亚洲在线视频观看| 欧美—级高清免费播放| 亚洲欧美精品中文字幕在线| 性欧美暴力猛交69hd| 91亚洲va在线va天堂va国| 亚洲3p在线观看| 亚洲人高潮女人毛茸茸| 欧美性猛交xxxx黑人猛交| 久久视频这里只有精品| 欧美国产日本高清在线| 国产亚洲欧美日韩一区二区| 久久精品国产一区| 午夜精品福利在线观看| 日韩中文字幕精品视频| 亚洲国产成人在线播放| 日韩精品在线观看网站| 91久久久久久久久久久久久| 97av在线播放| 亚洲美女自拍视频| 欧美性20hd另类| 欧洲亚洲妇女av| 91伊人影院在线播放| 国产成人av网| 在线观看国产精品淫| 成人自拍性视频| 欧美激情乱人伦一区| 亚洲国产成人久久综合一区| 97超碰国产精品女人人人爽| 国产免费一区二区三区在线能观看| 亚洲香蕉在线观看| 黄色一区二区在线| 亚洲色图综合网| 成人av番号网| 亚洲黄在线观看| 91九色视频导航| 国产精品日韩精品| 久久夜精品va视频免费观看| 国内免费久久久久久久久久久| 国产精品综合久久久| 91理论片午午论夜理片久久| 国产精品你懂得| 国产精品青草久久久久福利99| 日韩av电影在线免费播放| 日韩有码在线观看| 亚洲色图色老头| 色综合老司机第九色激情| 精品日本高清在线播放| 欧美精品在线视频观看| 免费不卡欧美自拍视频| 亚洲欧美另类中文字幕| 欧美黑人性生活视频| 亚洲欧美激情精品一区二区| 国产精品一区久久| 亚洲一区二区三区四区在线播放| 国产精品久久77777| 日韩av免费在线观看| 亚洲自拍欧美另类| 亚洲人成免费电影| 国内揄拍国内精品少妇国语| 日韩av在线天堂网| 国产成人涩涩涩视频在线观看| 精品国产欧美成人夜夜嗨| 亚洲第一视频网| 亲子乱一区二区三区电影| 8x拔播拔播x8国产精品| 97久久久久久| 欧美一级大片在线观看| 久久亚洲综合国产精品99麻豆精品福利| 久久99久久99精品中文字幕| 亚洲一区中文字幕在线观看| 国产日韩欧美在线播放| 欧美极品少妇与黑人| 欧洲日韩成人av| 精品无人区太爽高潮在线播放| 国内精品免费午夜毛片| 欧美国产在线电影| 国产欧美精品日韩精品| 久久久精品999| 日韩av观看网址| 伦伦影院午夜日韩欧美限制| 亚洲一区二区三区四区在线播放| 欧美在线影院在线视频| 欧美精品激情在线| 欧美性感美女h网站在线观看免费| 国产一级揄自揄精品视频| 欧美激情奇米色|