If you think the Android project esr-scanner listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright (C) 2010 ZXing authors/*www.java2s.com*/
* Copyright 2011 Robert Theis
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/package ch.luklanis.esscan.camera;
import android.graphics.Point;
import android.hardware.Camera;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
/**
* Called when the next preview frame is received.
* <p/>
* The code for this class was adapted from the ZXing project: http://code.google.com/p/zxing
*/finalclass PreviewCallback implements Camera.PreviewCallback {
privatestaticfinal String TAG = PreviewCallback.class.getSimpleName();
privatefinal CameraConfigurationManager configManager;
private Handler previewHandler;
privateint previewMessage;
PreviewCallback(CameraConfigurationManager configManager) {
this.configManager = configManager;
}
void setHandler(Handler previewHandler, int previewMessage) {
this.previewHandler = previewHandler;
this.previewMessage = previewMessage;
}
// Since we're not calling setPreviewFormat(int), the data arrives here in the YCbCr_420_SP
// (NV21) format.
@Override
publicvoid onPreviewFrame(byte[] data, Camera camera) {
Point cameraResolution = configManager.getCameraResolution();
Handler thePreviewHandler = previewHandler;
if (thePreviewHandler != null) {
Message message = thePreviewHandler.obtainMessage(previewMessage,
cameraResolution.x,
cameraResolution.y,
data);
message.sendToTarget();
previewHandler = null;
} else {
Log.d(TAG, "Got preview callback, but no handler for it");
}
}
}