/[projects]/android/BarcodeSample/app/src/main/java/dk/thoerup/android/barcodesample/MainActivity.java
ViewVC logotype

Annotation of /android/BarcodeSample/app/src/main/java/dk/thoerup/android/barcodesample/MainActivity.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2559 - (hide annotations) (download)
Fri May 22 13:26:16 2015 UTC (9 years ago) by torben
File size: 5050 byte(s)
Add very basic camera functionality
1 torben 2527 package dk.thoerup.android.barcodesample;
2    
3     import android.content.Intent;
4 torben 2559 import android.graphics.Bitmap;
5     import android.graphics.BitmapFactory;
6 torben 2527 import android.support.v7.app.ActionBarActivity;
7     import android.os.Bundle;
8 torben 2559 import android.util.DisplayMetrics;
9     import android.util.Log;
10 torben 2527 import android.view.Menu;
11     import android.view.MenuItem;
12     import android.view.View;
13     import android.widget.Button;
14 torben 2559 import android.widget.ImageView;
15 torben 2527 import android.widget.TextView;
16     import android.widget.Toast;
17    
18     import com.google.zxing.integration.android.IntentIntegrator;
19     import com.google.zxing.integration.android.IntentResult;
20    
21     /*
22     http://blog.dihaw.com/integrating-zxing-in-your-android-app-as-standalone-scanner/
23    
24     http://code.tutsplus.com/tutorials/android-sdk-create-a-barcode-reader--mobile-17162
25    
26    
27     http://stackoverflow.com/questions/27851512/how-to-integrate-zxing-library-to-android-studio-for-barcode-scanning
28    
29     */
30    
31     public class MainActivity extends ActionBarActivity {
32    
33 torben 2559 private Button startCamBtn;
34     private ImageView imageView;
35    
36    
37 torben 2527 private Button scanBtn;
38     private TextView formatTxt, contentTxt;
39    
40 torben 2529 //ved rotate bliver activity'en genstartet - så enten skal variablerne gøres static/gemmes på anden vis eller også skal man låse for rotation
41     static String scanContent = "";
42     static String scanFormat = "";
43    
44    
45    
46 torben 2527 @Override
47     protected void onCreate(Bundle savedInstanceState) {
48     super.onCreate(savedInstanceState);
49     setContentView(R.layout.activity_main);
50    
51     scanBtn = (Button) findViewById(R.id.button);
52     formatTxt = (TextView)findViewById(R.id.scan_format);
53     contentTxt = (TextView)findViewById(R.id.scan_content);
54    
55    
56 torben 2559 startCamBtn = (Button) findViewById(R.id.button_startcam);
57     imageView = (ImageView) findViewById(R.id.imageView);
58 torben 2527
59    
60 torben 2559
61 torben 2527 scanBtn.setOnClickListener(new View.OnClickListener() {
62    
63     @Override
64     public void onClick(View v) {
65     /*Intent intent = new Intent("com.google.zxing.client.android.SCAN");
66     intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
67     startActivityForResult(intent, 0);*/
68    
69     IntentIntegrator scanIntegrator = new IntentIntegrator(MainActivity.this);
70     scanIntegrator.initiateScan();
71     }
72     });
73    
74 torben 2559
75     startCamBtn.setOnClickListener(new View.OnClickListener() {
76     @Override
77     public void onClick(View v) {
78     Intent intent = new Intent(MainActivity.this, CamActivity.class);
79     startActivityForResult(intent, 1);
80     }
81    
82     });
83    
84 torben 2527 }
85    
86 torben 2529 @Override
87     protected void onStart() {
88     super.onStart();
89     updateLabels();
90     }
91    
92 torben 2530 @Override
93 torben 2527 public void onActivityResult(int requestCode, int resultCode, Intent intent) {
94 torben 2559 Log.i("CAM", "requestCode:" + requestCode);
95 torben 2527
96 torben 2559 switch( requestCode) {
97     case 49374:
98     IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
99 torben 2527
100 torben 2559 if (scanningResult != null) {
101     scanContent = scanningResult.getContents();
102     scanFormat = scanningResult.getFormatName();
103    
104     updateLabels();
105     }
106     else{
107     Toast toast = Toast.makeText(getApplicationContext(), "No scan data received!", Toast.LENGTH_SHORT);
108     toast.show();
109     }
110     break;
111     case 1:
112     byte data[] = intent.getByteArrayExtra("DATA");
113    
114     Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length);
115     DisplayMetrics dm = new DisplayMetrics();
116     getWindowManager().getDefaultDisplay().getMetrics(dm);
117    
118     imageView.setMinimumHeight(dm.heightPixels);
119     imageView.setMinimumWidth(dm.widthPixels);
120     imageView.setImageBitmap(bm);
121     break;
122    
123 torben 2527 }
124 torben 2559
125    
126 torben 2527 }
127    
128 torben 2529 private void updateLabels() {
129     formatTxt.setText("FORMAT: " + scanFormat);
130     contentTxt.setText("CONTENT: " + scanContent);
131     }
132    
133 torben 2527 @Override
134     public boolean onCreateOptionsMenu(Menu menu) {
135     // Inflate the menu; this adds items to the action bar if it is present.
136     getMenuInflater().inflate(R.menu.menu_main, menu);
137     return true;
138     }
139    
140     @Override
141     public boolean onOptionsItemSelected(MenuItem item) {
142     // Handle action bar item clicks here. The action bar will
143     // automatically handle clicks on the Home/Up button, so long
144     // as you specify a parent activity in AndroidManifest.xml.
145     int id = item.getItemId();
146    
147     //noinspection SimplifiableIfStatement
148     if (id == R.id.action_settings) {
149     return true;
150     }
151    
152     return super.onOptionsItemSelected(item);
153     }
154     }

  ViewVC Help
Powered by ViewVC 1.1.20