首先是MainActivity.java部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<code>package</code> <code>com.qrcode;</code>
<code>import</code> <code>com.google.zxing.WriterException;</code>
<code>import</code> <code>com.zxing.activity.CaptureActivity;</code>
<code>import</code> <code>com.zxing.encoding.EncodingHandler;</code>
<code>import</code> <code>android.app.Activity;</code>
<code>import</code> <code>android.content.Intent;</code>
<code>import</code> <code>android.graphics.Bitmap;</code>
<code>import</code> <code>android.os.Bundle;</code>
<code>import</code> <code>android.view.View;</code>
<code>import</code> <code>android.view.View.OnClickListener;</code>
<code>import</code> <code>android.widget.Button;</code>
<code>import</code> <code>android.widget.EditText;</code>
<code>import</code> <code>android.widget.ImageView;</code>
<code>import</code> <code>android.widget.TextView;</code>
<code>import</code> <code>android.widget.Toast;</code>
<code>public</code> <code>class</code> <code>MainActivity </code><code>extends</code> <code>Activity {</code>
<code> </code><code>private</code> <code>TextView resultTextView;</code>
<code> </code><code>private</code> <code>EditText qrStrEditText;</code>
<code> </code><code>private</code> <code>ImageView qrImgImageView;</code>
<code> </code>
<code> </code><code>@Override</code>
<code> </code><code>public</code> <code>void</code> <code>onCreate(Bundle savedInstanceState) {</code>
<code> </code><code>super</code><code>.onCreate(savedInstanceState);</code>
<code> </code><code>setContentView(R.layout.main);</code>
<code> </code>
<code> </code><code>resultTextView = (TextView) </code><code>this</code><code>.findViewById(R.id.tv_scan_result);</code>
<code> </code><code>qrStrEditText = (EditText) </code><code>this</code><code>.findViewById(R.id.et_qr_string);</code>
<code> </code><code>qrImgImageView = (ImageView) </code><code>this</code><code>.findViewById(R.id.iv_qr_image);</code>
<code> </code><code>Button scanBarCodeButton = (Button) </code><code>this</code><code>.findViewById(R.id.btn_scan_barcode);</code>
<code> </code><code>scanBarCodeButton.setOnClickListener(</code><code>new</code> <code>OnClickListener() {</code>
<code> </code>
<code> </code><code>@Override</code>
<code> </code><code>public</code> <code>void</code> <code>onClick(View v) {</code>
<code> </code>
<code> </code><code>Intent openCameraIntent = </code><code>new</code> <code>Intent(MainActivity.</code><code>this</code><code>,CaptureActivity.</code><code>class</code><code>);</code>
<code> </code><code>startActivityForResult(openCameraIntent, </code><code>0</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>});</code>
<code> </code><code>Button generateQRCodeButton = (Button) </code><code>this</code><code>.findViewById(R.id.btn_add_qrcode);</code>
<code> </code><code>generateQRCodeButton.setOnClickListener(</code><code>new</code> <code>OnClickListener() {</code>
<code> </code><code>try</code> <code>{</code>
<code> </code><code>String contentString = qrStrEditText.getText().toString();</code>
<code> </code><code>if</code> <code>(!contentString.equals(</code><code>""</code><code>)) {</code>
<code> </code>
<code> </code><code>Bitmap qrCodeBitmap = EncodingHandler.createQRCode(contentString, </code><code>350</code><code>);</code>
<code> </code><code>qrImgImageView.setImageBitmap(qrCodeBitmap);</code>
<code> </code><code>}</code><code>else</code> <code>{</code>
<code> </code><code>Toast.makeText(MainActivity.</code><code>this</code><code>, </code><code>"Text can not be empty"</code><code>, Toast.LENGTH_SHORT).show();</code>
<code> </code><code>}</code>
<code> </code><code>} </code><code>catch</code> <code>(WriterException e) {</code>
<code> </code><code>// TODO Auto-generated catch block</code>
<code> </code><code>e.printStackTrace();</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>protected</code> <code>void</code> <code>onActivityResult(</code><code>int</code> <code>requestCode, </code><code>int</code> <code>resultCode, Intent data) {</code>
<code> </code><code>super</code><code>.onActivityResult(requestCode, resultCode, data);</code>
<code> </code><code>if</code> <code>(resultCode == RESULT_OK) {</code>
<code> </code><code>Bundle bundle = data.getExtras();</code>
<code> </code><code>String scanResult = bundle.getString(</code><code>"result"</code><code>);</code>
<code> </code><code>resultTextView.setText(scanResult);</code>
<code> </code><code>}</code>
<code>}</code>
下面就是构成拍摄页面的部分由于很多都是继承的代码,这里我就不粘贴了,给大家一个图看一下,下面放出整理后的代码。
最后别忘了给权限部分:
<code><?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"utf-8"</code><code>?></code>
<code><</code><code>manifest</code> <code>xmlns:android</code><code>=</code><code>"http://schemas.android.com/apk/res/android"</code>
<code> </code><code>package</code><code>=</code><code>"com.qrcode"</code>
<code> </code><code>android:versionCode</code><code>=</code><code>"1"</code>
<code> </code><code>android:versionName</code><code>=</code><code>"1.0"</code><code>></code>
<code> </code><code><</code><code>uses-sdk</code> <code>android:minSdkVersion</code><code>=</code><code>"7"</code> <code>/></code>
<code> </code><code><</code><code>uses-permission</code> <code>android:name</code><code>=</code><code>"android.permission.VIBRATE"</code> <code>/> </code><code><!-- 震动权限 --></code>
<code> </code><code><</code><code>uses-permission</code> <code>android:name</code><code>=</code><code>"android.permission.CAMERA"</code> <code>/></code>
<code> </code><code><</code><code>uses-feature</code> <code>android:name</code><code>=</code><code>"android.hardware.camera"</code> <code>/> </code><code><!-- 使用照相机权限 --></code>
<code> </code><code><</code><code>uses-feature</code> <code>android:name</code><code>=</code><code>"android.hardware.camera.autofocus"</code> <code>/> </code><code><!-- 自动聚焦权限 --></code>
<code> </code><code><</code><code>application</code> <code>android:icon</code><code>=</code><code>"@drawable/icon"</code> <code>android:label</code><code>=</code><code>"@string/app_name"</code><code>></code>
<code> </code><code><</code><code>activity</code> <code>android:name</code><code>=</code><code>".MainActivity"</code>
<code> </code><code>android:label</code><code>=</code><code>"@string/app_name"</code><code>></code>
<code> </code><code><</code><code>intent-filter</code><code>></code>
<code> </code><code><</code><code>action</code> <code>android:name</code><code>=</code><code>"android.intent.action.MAIN"</code> <code>/></code>
<code> </code><code><</code><code>category</code> <code>android:name</code><code>=</code><code>"android.intent.category.LAUNCHER"</code> <code>/></code>
<code> </code><code></</code><code>intent-filter</code><code>></code>
<code> </code><code></</code><code>activity</code><code>></code>
<code> </code><code><!-- 隐藏键盘 --></code><code><!-- 全屏 --></code>
<code> </code><code><</code><code>activity</code>
<code> </code><code>android:configChanges</code><code>=</code><code>"orientation|keyboardHidden"</code>
<code> </code><code>android:name</code><code>=</code><code>"com.zxing.activity.CaptureActivity"</code>
<code> </code><code>android:screenOrientation</code><code>=</code><code>"portrait"</code>
<code> </code><code>android:theme</code><code>=</code><code>"@android:style/Theme.NoTitleBar.Fullscreen"</code>
<code> </code><code>android:windowSoftInputMode</code><code>=</code><code>"stateAlwaysHidden"</code> <code>></code>
<code> </code><code></</code><code>application</code><code>></code>
<code></</code><code>manifest</code><code>></code>
效果图:
<a href="http://s3.51cto.com/wyfs02/M02/37/E3/wKioL1OxFb_zt_-4AADkx6NL6no606.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/37/E4/wKiom1OxFfDw3dm4AAKwiP5PSkk617.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/37/E3/wKioL1OxFcHiHesEAAHGfpqHA5k023.jpg" target="_blank"></a>
<a href="http://down.51cto.com/data/2364587" target="_blank">附件:http://down.51cto.com/data/2364587</a>
本文转自 吴雨声 51CTO博客,原文链接:http://blog.51cto.com/liangxiao/1432467,如需转载请自行联系原作者