2013-03-12 3 views
13

डिवाइस नेक्सस 4 एंड्रॉयड ver: 4.2.2नेक्सस 4 कैमरा पूर्वावलोकन पहलू अनुपात हमेशा 16x9 सतहदृश्य की आवश्यकता है? क्यों

उम्मीद किसी और यह पाया गया है और यह कैसे हल करने के लिए व्याख्या कर सकते हैं ....

नेक्सस 4 निम्न पूर्वावलोकन आकार का समर्थन करता है: -

W:1280 H:720 Ratio: 1.777777 
W:800 H:480 Ratio: 1.6666666 
W:768 H:432 Ratio: 1.7777778 
W:720 H:480 Ratio: 1.5 
W:640 H:480 Ratio: 1.3333334 
W:576 H:432 Ratio: 1.3333334 
W:480 H:320 Ratio: 1.5 
W:384 H:288 Ratio: 1.3333334 
W:352 H:288 Ratio: 1.2222222 
W:320 H:240 Ratio: 1.3333334 
W:240 H:160 Ratio: 1.5 
W:176 H:144 Ratio: 1.2222222 

myCamera.setPreviewSize() उन्हें सेट करता है, और जब मैं myCamera.getPreviewSize() को कॉल करता हूं, तो मुझे सही सेट मिलता है, लेकिन .... अगर मैं अपने कैमरे के पूर्वावलोकन के समान आकार में अपना सतह दृश्य सेट करता हूं तो मुझे एक खिंचाव छवि मिलती है। जैसे

setPreviewSize(640,480) 
getPreviewSize -> I get 640,480 
Surface view (640,480) -> Stretched image 

केवल अगर मैं अपना भूतल दृश्य 16x9 (1.77777) पर सेट करता हूं तो क्या मुझे एक आदर्श छवि मिलती है।

Surface view (1280,720) -> Perfect image 

यह एकमात्र ऐसा डिवाइस है जिसके साथ मुझे यह समस्या है। कृपया कोई सलाह दे सकता है कि कैमरा सेटिंग है या नहीं, मैं पूर्ण स्क्रीन मोड के लिए अनुपलब्ध हूं या कुछ ऐसा जो इसे काम करने से रोक रहा है।

मेरी लंबी खोज में मैं 1 अन्य पोस्ट जो इस मुद्दे पर भी संबंधित है, लेकिन नहीं एक जवाब, मेरी समस्या का सिर्फ एक थोड़ा और अधिक सबूत PictureCallback not called unless using supportedsizes[0]

धन्यवाद

+0

दोस्त !! मेरे पास एक ही समस्या है। इस पर दो दिन बिताए, और मुझे अभी भी पता नहीं है कि यह एक विस्तृत छवि का उत्पादन क्यों कर रहा है – pintaf

उत्तर

0

के आकार सेट करने का प्रयास पाया अपने आप जिस कैमरे के पैरामीटर का उपयोग कर रहे हैं उसके अनुपात के आधार पर सतही दृश्य।

3

यह विधि प्रत्येक डिवाइस के लिए सर्वश्रेष्ठ (मेरे लिए) स्क्रीन आकार की गणना करती है। लेकिन, जब मैंने नेक्सस 4 में इस कोड को आजमाया तो मुझे आपके जैसा ही समस्या है। इसलिए, मेरा समाधान इस विधि के अंत में एक विशेष मामला है जो नेक्सस 4 की चौड़ाई प्राप्त करता है और इसके लिए सबसे अच्छी ऊंचाई की गणना करता है डिवाइस।

अंतिम मामले सभी उपकरणों में उपयोग किया जा सकता है। आप विधि के पहले भाग को हटा सकते हैं।

private void setAspectResolutionCamera(Parameters camParams, int screen_width, int screen_height) { 
    boolean chosen_one_resolution = false; 

    //Init screen sizes 
    width_video = ConstantsCamera.VIDEO_ASPECT_WIDTH; 
    height_video = ConstantsCamera.VIDEO_ASPECT_HEIGHT; 

    float aspect_ratio = 1f; 
    int aspect_width = 6000, aspect_height = 6000; 
    List<Size> supported_sizes_list = camParams.getSupportedPreviewSizes(); 
    for (int i = 0; i < supported_sizes_list.size(); i++) { 
     Size size = supported_sizes_list.get(i); 

     float aspect = (float) size.height/size.width; 
     if (ConstantsCamera.VIDEO_ASPECT_RATIO - aspect <= aspect_ratio && (aspect - ConstantsCamera.VIDEO_ASPECT_RATIO >= 0)) { 

      if (screen_width - size.height <= aspect_width && size.height - screen_width >= 0) { 

       if (screen_height - size.width < aspect_height) { 
        height_video = size.width; 
        width_video = size.height; 
        aspect_ratio = ConstantsCamera.VIDEO_ASPECT_RATIO - (float) size.height/size.width; 
        aspect_width = screen_width - size.height; 
        aspect_height = screen_height - size.width; 

        chosen_one_resolution = true; 


       } 
      } 
     } 
    } 

    //Special case 
    if (width_video != screen_width && !chosen_one_resolution) { 
     height_video = screen_width * height_video/width_video; 
     width_video = screen_width; 

    } 
} 
7

नेक्सस 4 पर, वहाँ एक दुर्भाग्यपूर्ण मुद्दा जहां पूर्वावलोकन पहलू अनुपात और अभी भी चित्र पहलू अनुपात एक साथ बंधे रहे हैं, भले ही आप कभी नहीं एक तस्वीर लेने। यदि वे मेल नहीं खाते हैं, तो दोनों में से एक विकृत हो जाता है (आमतौर पर पूर्वावलोकन, क्योंकि यह निम्न संकल्प है)।

यदि आप 4: 3 पूर्वावलोकन का उपयोग करना चाहते हैं, तो अभी भी पूर्वावलोकन शुरू करने से पहले चित्र आकार को 4: 3 के रूप में कॉन्फ़िगर करें। उदाहरण के लिए, एन 4 पर एक पूर्ण 8 एमपी चित्र आकार (3264 x 2448) के साथ 640x480 पूर्वावलोकन पूर्वावलोकन के लिए कोई खिंचाव नहीं होना चाहिए।

चित्र आकार का चयन करने के लिए Camera.Parameters.setPictureSize का उपयोग करें; उपलब्ध आकारों की सूची Camera.Parameters.getSupportedPictureSizes से पढ़ी जा सकती है।

+0

यह सभी नेक्सस मॉडल पर एक मुद्दा प्रतीत होता है। –

+0

दोनों @Eddy Talvala और बेनी के सुझावों ने मुझे मेरी समस्या को ठीक करने में मदद की है। धन्यवाद। इस सवाल पूछने के लिए इयान के लिए भी धन्यवाद। –

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