2011-04-26 15 views
8

मैं एंड्रॉइड पर विकास कर रहा हूं, मैं कैमरा (प्रक्रिया पिक्सल के मूल्यों) के साथ कुछ करना चाहता हूं, लेकिन पृष्ठभूमि में, क्या सतह के दृश्य के बिना ऐसा करना संभव है? बस पिक्सेल के मान पढ़ने और प्रसंस्करण करने के लिए एक बफर का उपयोग करें। हर कोई मेरी मदद कर सकता हैसतह के बिना एंड्रॉइड कैमरा का उपयोग करें

उत्तर

4

मैं थोड़ी देर के लिए इसका उत्तर ढूंढ रहा हूं। मैंने इसे वहां पाया, सुविधा के लिए यहां कॉपी किया गया।

http://handycodeworks.com/?p=19

असल में, सिर्फ एक डमी SurfaceView बना सकते हैं (यह भी एक सेवा के अंदर काम करता है), और कैमरा कार्यों के लिए इसका इस्तेमाल करते हैं।

SurfaceView view = new SurfaceView(this); 
c.setPreviewDisplay(view.getHolder()); 
c.startPreview(); 
c.takePicture(shutterCallback, rawPictureCallback, jpegPictureCallback); 
+1

यह किस डिवाइस के लिए काम करता है? मैंने जिन सभी उपकरणों का परीक्षण किया है, वे इस कोड का उपयोग करते हैं "ई/कैमरा एचएएल (132): रोटेशन को कॉन्फ़िगर करते समय त्रुटि" – xbakesx

+0

पर परीक्षण किया गया: गैलेक्सी i5800 (2.2), एचटीसी वाइल्डफायर (2.1?) - यह थोड़ी देर पहले था :) – qdot

+0

मैंने कुछ और शोध किया, जाहिर है कि सैमसंग इस बारे में एक असली स्टिकर है, और मेरा परीक्षण उपकरण सैमसंग है ... – xbakesx

3

एपीआई-स्तर 11 के रूप में SurfaceTexture जोड़ा गया था। इसके साथ एक SurfaceView की आवश्यकता नहीं है। मैंने अपने सैमसंग गैलेक्सी एस 3 नियो के साथ निम्नलिखित कोड का परीक्षण किया।

mCamera = Camera.open(); 
try { 
    mCamera.setPreviewTexture(new SurfaceTexture(10)); 
} catch (IOException e1) { 
    Log.e(Version.APP_ID, e1.getMessage()); 
} 

Parameters params = mCamera.getParameters(); 
params.setPreviewSize(640, 480); 
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
params.setPictureFormat(ImageFormat.JPEG); 
mCamera.setParameters(params); 
mCamera.startPreview(); 
mCamera.takePicture(null, null, null, new PictureCallback() { 
    @Override 
    public void onPictureTaken(byte[] data, Camera camera) { 
     Log.i(Version.APP_ID, "picture-taken"); 
    } 
}); 
संबंधित मुद्दे