উত্তর:
আপনি android:screenOrientation="portrait"আপনার মেনিফেস্ট.এমএমএল ফাইলের প্রতিটি ক্রিয়াকলাপের জন্য নির্দিষ্ট করতে পারেন । আপনি applicationট্যাগটিতে এই বিকল্পটি নির্দিষ্ট করতে পারবেন না ।
অন্যান্য বিকল্পটি প্রোগ্রামিয়ালি এটি করা, উদাহরণস্বরূপ Activityবেস ক্লাসে:
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
সর্বশেষ বিকল্পটি ক্রিয়াকলাপের জীবনচক্র শ্রোতাদের সাথে এটি করা যা কেবলমাত্র অ্যান্ড্রয়েড 4.0.০ (এপিআই 14+) এর পরে পাওয়া যায়। একটি কাস্টম Applicationক্লাসে সবকিছু ঘটে :
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleAdapter() {
@Override
public void onActivityCreated(Activity a, Bundle savedInstanceState) {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
}
ActivityLifecycleAdapterএটি কেবলমাত্র একটি সহায়ক শ্রেণি যা আপনাকে তৈরি করতে হবে যা খালি বাস্তবায়ন হবে ActivityLifecycleCallbacks(যাতে আপনার যখন কেবলমাত্র তাদের একটির প্রয়োজন হয় তখন আপনাকে সেই ইন্টারফেসের প্রতিটি পদ্ধতি ওভাররাইড করতে হবে না)।
হ্যাঁ আপনি প্রোগ্রামগতভাবে এবং আপনার সমস্ত ক্রিয়াকলাপকে প্রসারিত এমন একটি অ্যাবস্ট্রাক্ট অ্যাক্টিভিটি তৈরি করার জন্য আপনার উভয় ক্রিয়াকলাপের জন্য এটি করতে পারেন।
public abstract class AbstractActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
এই বিমূর্ত ক্রিয়াকলাপটি একটি গ্লোবাল মেনুতেও ব্যবহার করা যেতে পারে।
ActivityInfo.SCREEN_ORIENTATION_NOSENSORএটি আরও ভাল উত্তর হওয়া উচিত কারণ এটি ডিভাইসটিকে ডিফল্ট অবস্থায় রেখে দেওয়ার উদ্দেশ্য কারণ কোনও কোনও ডিভাইসের প্রতিকৃতি ওরিয়েন্টেশন নেই। তবে, 'নাকনসর' আমার পক্ষে কাজ করে না, সুতরাং @ আরকনের উত্তর আমার পক্ষে দাঁড়িয়েছে।
আপনার সমস্ত ক্রিয়াকলাপকে একটি সাধারণ বেস শ্রেণি বাড়িয়ে না দিয়ে আপনি আপনার পুরো অ্যাপ্লিকেশনটির জন্য এটি করতে পারেন।
কৌতুকটি Applicationআপনার প্রকল্পের একটি সাবক্লাস অন্তর্ভুক্ত করা হয়েছে তা নিশ্চিত করার আগে is এর মধ্যে onCreate()বলা হয়, যখন আপনার অ্যাপ্লিকেশনটি প্রথম শুরু হয়, আপনি ActivityLifecycleCallbacksক্রিয়াকলাপের জীবনচক্রের ইভেন্টগুলির বিজ্ঞপ্তিগুলি পেতে কোনও বস্তুর (API স্তর 14+) নিবন্ধভুক্ত করেন ।
এটি যখনই আপনার অ্যাপ্লিকেশনটিতে কোনও ক্রিয়াকলাপ শুরু হয় (বা বন্ধ হয়ে যায়, বা পুনরায় চালু করা হয় বা যাই হোক না কেন) আপনার নিজের কোডটি কার্যকর করার সুযোগ দেয় । এই মুহুর্তে আপনি setRequestedOrientation()নতুন তৈরি করা ক্রিয়াকলাপটি কল করতে পারেন ।
class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
// register to be informed of activities starting up
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity,
Bundle savedInstanceState) {
// new activity created; force its orientation to portrait
activity.setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
....
});
}
}
আপনি এটি আপনার প্রকাশিত ফাইলে সেট করতে পারেন ..
android:name=".your launching activity name"
android:screenOrientation="portrait"
এবং আপনি নিজের ক্লাস ফাইলে কোড লিখেও এটি অর্জন করতে পারেন:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
অ্যান্ড্রয়েড যুক্ত করুন: স্ক্রিন ওরিয়েন্টেশন = অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলটিতে "প্রতিকৃতি"। উদাহরণ স্বরূপ:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
ব্যবহার করুন:
android:screenOrientation="portrait"
আপনি কেবল প্রতিকৃতি মোডে প্রদর্শন করতে চান এমন প্রতিটি ক্রিয়াকলাপে আপনার অ্যাপ্লিকেশনটির ম্যানিফেস্ট ফাইলটিতে এই লাইনটি লিখুন।
অ্যান্ড্রয়েড বিকাশকারী গাইড হিসাবে:
"ওরিয়েন্টেশন" স্ক্রিনের ওরিয়েন্টেশন পরিবর্তন হয়েছে - ব্যবহারকারী ডিভাইসটি ঘোরালেন। দ্রষ্টব্য: যদি আপনার অ্যাপ্লিকেশনটি এপিআই লেভেল 13 বা ততোধিক (মিনিসডকভিশন এবং টার্গেটএসডিকি ভার্সন বৈশিষ্ট্যগুলির দ্বারা ঘোষিত) হিসাবে লক্ষ্য করে তবে আপনার "স্ক্রিনসাইজ" কনফিগারেশনটিও ঘোষণা করা উচিত, কারণ কোনও ডিভাইস প্রতিকৃতি এবং ল্যান্ডস্কেপ ওরিয়েন্টেশনের মধ্যে স্যুইচ করলে এটিও পরিবর্তিত হয়।
"স্ক্রীনসাইজ" বর্তমান উপলব্ধ পর্দার আকার পরিবর্তন হয়েছে। এটি বর্তমান উপলভ্য আকারের পরিবর্তনের প্রতিনিধিত্ব করে, বর্তমান দিক অনুপাতের সাথে তুলনামূলকভাবে, তাই যখন ব্যবহারকারী ল্যান্ডস্কেপ এবং প্রতিকৃতিতে পরিবর্তন করে change তবে, যদি আপনার অ্যাপ্লিকেশনটি এপিআই লেভেল 12 বা তার চেয়ে কমের লক্ষ্যবস্তু করে, তবে আপনার ক্রিয়াকলাপ সর্বদা এই কনফিগারেশন পরিবর্তনটিকে নিজেরাই পরিচালনা করে (কোনও অ্যান্ড্রয়েড 3.2 বা উচ্চতর ডিভাইসে চলাকালীন এই কনফিগারেশন পরিবর্তনটি আপনার ক্রিয়াকলাপটি পুনরায় আরম্ভ করে না)। এপিআই লেভেল 13 এ যুক্ত হয়েছে।
সুতরাং, AndroidManLive.xML ফাইলে আমরা রাখতে পারি:
<activity
android:name=".activities.role_activity.GeneralViewPagerActivity"
android:label="@string/title_activity_general_view_pager"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
>
</activity>
আমার কনফিগারেশনএক্সএমএল এর <preference name="orientation" value="portrait" />অধীনে যোগ করা <widget>আমার পক্ষে কাজ করেছিল।
(অন্যান্য সমাধানগুলি আমার ডিভাইসে কার্যকর হয়নি, বিল্ডিংয়ের সময় ওভাররাইট করা হয়েছিল বা বিল্ড প্রক্রিয়া চলাকালীন অবচয় ত্রুটি দিয়েছে gave)
ম্যানিফেস্ট ফাইলে আপনি কোন ক্রিয়াকলাপ "প্রতিকৃতি" ব্যবহার করতে চান তা অবশ্যই আপনাকে এই কোডটি ক্রিয়াকলাপ ট্যাগে লিখতে হবে
android:screenOrientation="portrait"
এটার মত
android:icon="@drawable/icon"
android:name="com.zemkoapps.hd.wallpaper.AndroidGridLayoutActivity"
android:screenOrientation="portrait" >
তবে আপনি যদি ল্যান্ডস্কেপে স্ক্রিন চান তবে এই কোডটি ব্যবহার করুন
android:screenOrientation="landscape"
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//setting screen orientation locked so it will be acting as potrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}
কেউ যদি হতাশ ছিল, কিভাবে আপনি এই আপনার সমগ্র অ্যাপ্লিকেশানের জন্য আপনার সকল ক্রিয়াকলাপের একটি সাধারণ বেস বর্গ প্রসারিত করতে না করেও করতে পারে Kotlin , নীচের উদাহরণ দেখুন:
class InteractiveStoryApplication: Application() {
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(object: ActivityLifecycleCallbacks {
override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
override fun onActivityPaused(activity: Activity?) {
}
override fun onActivityResumed(activity: Activity?) {
}
override fun onActivityDestroyed(activity: Activity?) {
}
override fun onActivitySaveInstanceState(activity: Activity?, outState: Bundle?) {
}
override fun onActivityStarted(activity: Activity?) {
}
override fun onActivityStopped(activity: Activity?) {
}
})
}
}
এবং তারপরে আপনাকে অ্যান্ড্রয়েড ম্যানিফেস্টে আপনার সাধারণ বেস ক্লাসটি যুক্ত করতে হবে:
<application android:allowBackup="true"
android:name=".InteractiveStoryApplication"
গ্রাহাম বোরল্যান্ড উত্তরের অনুরূপ ... তবে মনে হচ্ছে আপনি চাইলে অ্যাপ্লিকেশন ক্লাস তৈরি করতে হবে না ... কেবল আপনার প্রকল্পে একটি বেস ক্রিয়াকলাপ তৈরি করুন
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
আপনি যেখানে প্রতিকৃতি মোড ব্যবহার করতে চান সেখানে অ্যাপকোম্প্যাটঅ্যাক্টিভিটির পরিবর্তে এই শ্রেণিটি প্রসারিত করুন
public class your_activity extends BaseActivity {}
জামারিন ব্যবহারকারীদের জন্য:
আপনি যদি আপনার সমস্ত ক্রিয়াকলাপকে BaseActivityকেবল প্রসারিত করেন তবে যুক্ত করুন:
this.RequestedOrientation = ScreenOrientation.Portrait;
এটি সমস্যার সমাধান করবে। আপনি যদি চান যে কোনও বিশেষ ক্রিয়াকলাপ ল্যান্ডস্কেপে থাকে তবে এটিকে ওভাররাইড করে OnActivityCreated। হিসাবে:
this.Activity.RequestedOrientation = ScreenOrientation.Landscape;
আপনার ম্যানিফেস্টে এটি টাইপ করুন:
<activity
android:screenOrientation="portrait"
<!--- Rest of your application information ---!>
</activity>