2010-12-06 16 views
14

द्वारा रोटेशन सक्षम करें मैं एक एंड्रॉइड ऐप (टैबलेट के लिए) बनाना चाहता हूं जिसे केवल परिदृश्य अभिविन्यास में प्रदर्शित किया जाना चाहिए, उदा। ऐप को 90 डिग्री से घूर्णन को अनदेखा करना चाहिए, लेकिन 180 डिग्री से घूर्णन का समर्थन करना चाहिए।एंड्रॉइड: 90 डिग्री से घूर्णन अक्षम करें, लेकिन 180 डिग्री

एंड्रॉइड जोड़ना: मैनिफेस्ट में स्क्रीनऑरिएंटेशन = "लैंडस्केप" ऐप को सभी रोटेशन, (यहां तक ​​कि 180 डिग्री रोटेशन) को अनदेखा करने का कारण बनता है, यानी 180 डिग्री से डिवाइस को घूर्णन करने से एप्लिकेशन को उल्टा दिखाया जाता है।

एंड्रॉइड के बिना: स्क्रीनऑरिएंटेशन विशेषता मेरे ऐप को सभी चार स्थितियों में "सही" प्रदर्शित किया जाता है। 180 डिग्री से डिवाइस को रोटेशन यूआई लंबवत रूप से राहत देता है। क्षैतिज।

जब डिवाइस निम्नलिखित लॉग संदेशों बनाई गई हैं (हो सकता है इस में मदद करता है?) रोटेशन:

[...]: INFO/WindowManager(1290): Setting rotation to 1, animFlags=0 
Rotation is a value between 0 and 3 representing the current orientation. 

संक्षिप्त: यह दोनों परिदृश्य झुकाव का समर्थन करने के लिए एक एप्लिकेशन सक्षम करने के लिए संभव है?

+0

मुझे शक है ... आप उल्टा मोड का समर्थन क्यों करना चाहते हैं, लेकिन अन्य घूर्णन नहीं? –

+0

@ मायारा - स्पष्ट चीज जो स्प्रिंग्स को दिमाग में रखती है वह एक ऐसा ऐप है जो पोर्ट्रेट और उपकरणों के अनुरूप नहीं है, जिनके पास 'आवश्यक' बटन, यूएसबी पोर्ट इत्यादि हो सकते हैं (जो एक मजबूर क्षैतिज अभिविन्यास में 'नीचे' बन जाता है)। – Squonk

+1

@janjonas - मैंने बस इसके साथ लगभग आधा घंटा हैकिंग बिताई और मैं इसे मेरे लिए काम नहीं कर सकता। एंड्रॉइड 2.3 सामान्य और 'रिवर्स' पोर्ट्रेट और लैंडस्केप ओरिएंटेशन के बीच अंतर करता है, हालांकि, हो सकता है कि आप इसे अपने टेबलेट डिवाइस के लिए उपलब्ध होने पर काम कर सकें। – Squonk

उत्तर

17

नया sensorLandscape स्क्रीन अभिविन्यास स्पष्ट रूप से इस उद्देश्य के लिए है।

जैसे, तुम कर सकते हो:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 

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

+0

आपके उत्तर के लिए धन्यवाद। IMHO 2.2 – janjonas

+0

में ऐसा करने का कोई तरीका नहीं है क्या आपने 2.2 पर ऐसा करने का प्रबंधन किया था? – ffleandro

+0

ने 3.2.1 टैबलेट पर मेरे लिए काम किया, लेकिन 4.0.2 फोन पर नहीं (SCREEN_ORIENTATION_SENSOR_PORTRAIT का उपयोग करके) – SteelBytes

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