2011-03-31 21 views
9

मैंने एक कैमरा एप्लिकेशन लागू किया है, जो डिवाइस की पूरी स्क्रीन में पूर्वावलोकन दिखाएगा। लेकिन मेरी आवश्यकता एक छोटी स्क्रीन में कैमरा पूर्वावलोकन दिखाने के लिए है। मेरा डिवाइस रेज़ोल्यूशन 800x480 (WxH) i.e, Nexus One है। मैं पूर्वावलोकन को स्केल किए बिना पूरी स्क्रीन में पूर्वावलोकन दिखाने में सक्षम हूं। यह पूरी तरह से आ रहा है, लेकिन जब मैं छोटे स्क्रीन (मेरी कुल मोबाइल स्क्रीन का हिस्सा) में पूर्वावलोकन दिखाने का प्रयास करता हूं, तो पूर्वावलोकन बढ़ रहा है और अच्छा नहीं दिख रहा है।कैमरा पूर्वावलोकन का आकार बदलना

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

क्या कोई मेरी मदद कर सकता है कि छोटी स्क्रीन में छवि पूर्वावलोकन को स्केल कैसे करें।

+0

क्या आपने इसे हल किया? – powder366

उत्तर

0

उदय,

तुम सिर्फ बदलते कोशिश की

<android.view.SurfaceView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/preview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@id/ButtonGroup" 
     /> 
कुछ इस तरह के

है ....

<android.view.SurfaceView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/preview" 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_above="@id/ButtonGroup" 
     /> 

अगर है कि आप जो खोज रहे हैं, हो सकता है आप कर सकता है नहीं है अपना वर्तमान कोड पोस्ट करें ताकि हम इसे देख सकें? :-)

+0

धन्यवाद आपके उत्तर के लिए जेरेड .. मैंने इसे पोस्ट करने से पहले सुझावों से पहले ही कोशिश की है .. हम पूर्वावलोकन आकार (सतह दृश्य आकार) को कम करने में सक्षम हो सकते हैं। लेकिन यहां मेल समस्या पूर्वावलोकन स्क्रीन के साथ है। सतह दृश्य के आकार में कैमरा पूर्वावलोकन को ठीक से सेट करना (किसी भी खींचने या घटाने के साथ) सेट करना बहुत मुश्किल है। – uday

+0

उदय, मैं सोच रहा हूं कि आयाम प्राप्त करके, चित्रित रूप से ली गई तस्वीर (या पूर्वावलोकन) के आकार को प्रोग्रामेटिक रूप से निर्धारित करने के लिए, और फिर पूर्वावलोकन के आकार को प्रोग्रामिक रूप से समान पहलू अनुपात के रूप में बदलने के लिए एक संभावित समाधान होगा? यह पता लगाएगा कि कौन सा आकार बहुत बड़ा (चौड़ाई, या ऊंचाई) है, और उसके बाद इसे जितना आवश्यक हो उतना कम करें, इसलिए यह उचित अनुपात है। क्या वह काम तुम्हारे लिये होगा? यदि ऐसा है, तो मुझे बताएं और मैं देखूंगा कि मैं यह काम कर सकता हूं या नहीं। :-) – Jared

3

लगभग एक सप्ताह तक इसी समस्या के साथ संघर्ष करने के बाद, मैं आखिरकार प्रोग्राम पूर्वावलोकन को आकार बदलने के लिए कैमरा पूर्वावलोकन प्राप्त करने में सक्षम था! :-D

preview मेरी SurfaceView का नाम है और इस कोड में, मैं इसे सेट अप इतना है कि यह अपने आप में आकार बदलता है RelativeLayout कि क्या है की चौड़ाई का आधा होना है।

ViewGroup.LayoutParams params = preview.getLayoutParams(); 
RelativeLayout myRelLayout = (RelativeLayout) findViewById(R.id.myRelLayout); 
params.width = (int) (myRelLayout.getWidth()/2); 
preview.setLayoutParams(params); 

अब आपके उपयोग के लिए, आपको पूर्वावलोकन के संकल्प को देखने की आवश्यकता होगी और फिर उस संकल्प के आधार पर ऊंचाई या चौड़ाई को स्केल करना होगा।

+0

इसके अलावा, एक संबंधित नोट पर, मुझे पहली तस्वीर लेने के बाद मेरे कैमरे के पूर्वावलोकन विकृत होने में बड़ी समस्याएं थीं। मुझे बाद में पता चला कि मुझे इस लाइन को मेरी मेनिफेस्ट फ़ाइल में जोड़ने की ज़रूरत है और इसे ठीक किया गया है। :-) '<उपयोग-एसडीके एंड्रॉइड: minSdkVersion = "3" एंड्रॉइड: targetSdkVersion = "6" />' – Jared

+0

क्या आप कुछ कोड साझा कर सकते हैं? – powder366

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