2012-04-30 28 views
9

Android डेवलपर साइट अनुसार:Android कैमरा पूर्वावलोकन रोटेशन

एंड्रॉयड 2.2 के बाद वहाँ समारोह

कैमरा पूर्वावलोकन रोटेशन समायोजित करने के लिए "setDisplayOrientation"

है।

और एंड्रॉइड डेवलपर साइट के अनुसार, हम निम्नलिखित स्रोत कोड पा सकते हैं।

android.hardware.Camera.CameraInfo info = 
      new android.hardware.Camera.CameraInfo(); 
    android.hardware.Camera.getCameraInfo(cameraId, info); 
    int rotation = activity.getWindowManager().getDefaultDisplay().getRotation(); 
    int degrees = 0 ; 
    switch (rotation) { 
     case Surface.ROTATION_0 : degrees = 0 ; break ; 
     case Surface.ROTATION_90 : degrees = 90 ; break ; 
     case Surface.ROTATION_180 : degrees = 180 ; break ; 
     case Surface.ROTATION_270 : degrees = 270 ; break ; 
    } 
    int result ; 
    if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
     result = (info.orientation + degrees) % 360 ; 
     result = (360 - result) % 360 ; // compensate the mirror 
    } else { // back-facing 

     result = (info.orientation - degrees + 360) % 360 ; 

    } 

हालांकि, मैं किसी प्रकार के उपकरणों के साथ काम नहीं कर सकता। सैमसंग गैलेक्सी वाई S5360, S5660, वाईपी-जी 1, वाईपी-जी 70, आदि

मशीन का सिर्फ एक हिस्सा काम नहीं कर रहा है, गैलेक्सी नेक्सस, एसआईआई, या कुछ उच्च अंत डिवाइस, यह ठीक काम करता है।

क्या सेट डिस्प्लेऑरेंटेशन समर्थन नहीं करता है, या डिवाइस फर्मवेयर तैयार नहीं है?

पीएस। सभी डिवाइस एंड्रॉइड 2.3.1 या इससे ऊपर हैं।

सहायता।

+0

मुझे अपने गैलेक्सी वाई पर एक ही समस्या का सामना करना पड़ रहा है। क्या आपको कुछ पता चला? मैं कम से कम जानना चाहता हूं कि अगर सेटडिस्प्लेऑरेंटेशन सफल हुआ, तो इसे लैंडस्केप पर लॉक करने के लिए नहीं। आखिरकार –

+0

हल नहीं हुआ। बस कैमरे की सतह गतिविधि क्षैतिज दृश्य में बनाओ। –

+0

क्या किसी के पास डिवाइस की एक सूची है जो इस त्रुटि पर होती है? किसी भी मदद की सराहना की जाएगी। – patrickfdsouza

उत्तर

-3

अपने कैमरे के दृश्य के एक्सएमएल को परिदृश्य में सेट करने का प्रयास करें।

+1

ओपी वास्तव में उपयोगी जवाब नहीं है अगर ओपी परिदृश्य नहीं करेगा तो वह पहले से ही चित्र कैसे प्राप्त नहीं करेगा, यह नहीं पूछेगा। – Shirkrin

+0

@Shirkrin उत्तर पहले स्थान पर अजीब लग रहा है। लेकिन तथ्य यह है कि, कुछ उपकरणों में, कैमरे का पूर्वावलोकन परिदृश्य में तय किया जाता है। यदि आप अपने कैमरे के पूर्वावलोकन के एक्सएमएल को परिदृश्य में समायोजित करते हैं, तो यह सभी डिवाइस फिट होगा। कैमरे द्वारा ली गई तस्वीर को घुमाने के लिए मैट्रिक्स का उपयोग करने के लिए आप आगे क्या करेंगे। – dumbfingers

+0

इसमें कोई काम नहीं है। –

3

कैमरे के अभिविन्यास डिस्प्ले को सेट करने की समस्या इन उपकरणों के ऑपरेटिंग सिस्टम संस्करण पर काम नहीं करती है जो मूल रूप से (जिंजरब्रेड) है लेकिन इसके ऊपर के उपकरणों के लिए यह ठीक काम करता है।

मैंने इन उपकरणों पर भी यह कोशिश की, लैंडस्केप मोड ठीक काम करता है लेकिन पोर्ट्रेट मोड में समस्या है। मामले में चित्र के लिए मजबूर सिर्फ

में इस के माध्यम से 90 डिग्री करने के लिए कैमरा उन्मुखीकरण मजबूर करने के लिए
public void surfaceChanged(SurfaceHolder holder, int format, int width, 
    int height) { 

camera.setDisplayOrientation(90); 


} 

और साथ ही पोस्ट प्रदर्शित करने या

में के माध्यम से यह बचत
PictureCallback myPictureCallback_JPG = new PictureCallback(){ 


    public void onPictureTaken(byte[] arg0, Camera arg1) { 

    Bitmap bitmapPicture= BitmapFactory.decodeByteArray(arg0, 0, arg0.length); 
     Matrix matrix = new Matrix(); 
    matrix.postRotate(90); 
    int height=bitmapPicture.getHeight(); 
    int width=bitmapPicture.getWidth(); 
    Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmapPicture,height,width, true); 
     Bitmap rotatedBitmap = Bitmap.createBitmap(scaledBitmap , 0, 0, scaledBitmap.getWidth(), scaledBitmap.getHeight(), matrix, true); 
} 

आशा है कि यह पहले चित्र को घुमाने की थी हेल्प्स

संबंधित मुद्दे