আমি চাই আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি কেবল প্রতিকৃতি মোডে চলুক?


358

আমি চাই আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি কেবল প্রতিকৃতি মোডে চলুক? আমি এটা কিভাবে করবো?

উত্তর:


778

ম্যানিফেস্টে, আপনার সমস্ত ক্রিয়াকলাপের জন্য এটি সেট করুন:

<activity android:name=".YourActivity"
    android:configChanges="orientation"
    android:screenOrientation="portrait"/>

আমাকে বিস্তারিত বলতে দাও:

  • আপনার সাথে android:configChanges="orientation"অ্যান্ড্রয়েডকে জানিয়েছিলেন যে অভিমুখী পরিবর্তনগুলির জন্য আপনি দায়বদ্ধ হবেন।
  • android:screenOrientation="portrait" আপনি ডিফল্ট ওরিয়েন্টেশন মোড সেট করেছেন।

50
আমরা যদি অ্যাপ্লিকেশনটিতে সমস্ত ক্রিয়াকলাপের জন্য "বৈশ্বিক" অভিযোজন সেট করতে পারি তবে দুর্দান্ত হবে না? দেখে মনে হচ্ছে আমাদের প্রতিটি ক্রিয়াকলাপে "প্রতিকৃতি" বৈশিষ্ট্য অনুলিপি / পেস্ট করা ছাড়া কোনও বিকল্প নেই ...
এডুয়ার্ডো কোয়েলহো

63
এটি সেট করা যথেষ্টandroid:screenOrientation="portrait"
পর্যন্ত

11
@ এডুয়ার্ডো কোয়েলহো আপনি আসলে একটি বেস ক্লাস করতে পারেন PortraitActivityএবং অনক্রিটে কল setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)এটিকে প্রসারিত সমস্ত ক্রিয়াকলাপ
ঘোরবে

1
@ টুইনোন: কীভাবে যখন বিভিন্ন ক্রিয়াকলাপগুলি বিভিন্ন সাবক্লাস থেকে উত্তরাধিকারী হতে চায় Activity, যেমন একটি ক্রিয়াকলাপ ListActivityযখন অন্যদের থেকে প্রসারিত হয় তার থেকে বাড়ানো হয় Activity?
রেস্টিনপিস

3
@ রিস্টইনপিস হ্যাঁ, ভাল কথা। তবে এটি আমার ধারণাটি ভুল হচ্ছে না, এটি কেবল জাভা একাধিক উত্তরাধিকারকে সমর্থন করছে না :)
টুইনোন

57

Android এ ম্যানিফেস্ট ফাইল, আপনার জন্য গুণাবলীর করা <activity>যেandroid:screenOrientation="portrait"


2
আমাকে যোগ করতে দাও: অ্যান্ড্রয়েড সুডিও থেকে 3.6 এর জন্য অ্যান্ড্রয়েড: স্ক্রিন ওরিয়েন্টেশন = "ফুলসেন্সর" বা অ্যান্ড্রয়েড: স্ক্রিন ওরিয়েন্টেশন = "অনির্ধারিত" ব্যবহার করা দরকার। পুরো সেন্সরটির অর্থ হয় আপনি "ঘোরান বন্ধ" চালু করুন বা এটি আপনার ফোনটি সরানোর উপর ভিত্তি করে ওরিয়েন্টেশনকে পরিবর্তন করবে। অনির্ধারিত মানে যদি আপনার ঘোরানো বন্ধ থাকে তবে এটি কেবল সেই দিকনির্দেশে থাকবে এবং যদি তা না হয় তবে এটি আপনার ফোনটি সরানোর উপর ভিত্তি করে ওরিয়েন্টেশনকে পরিবর্তন করবে।
কির্গডাক

24

দুটি উপায় আছে,

  1. android:screenOrientation="portrait"ম্যানিফেস্ট ফাইলটিতে প্রতিটি ক্রিয়াকলাপের জন্য যুক্ত করুন
  2. যোগ this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);প্রতিটি জাভা ফাইলে।

14
দ্বিতীয় বিকল্পটিতে ভয়ঙ্কর পার্শ্ব প্রতিক্রিয়া রয়েছে যা প্রতিকৃতিতে শুরু করার সাথে সাথে এটি আপনার ক্রিয়াকলাপটি পুনরায় শুরু করবে।
জোয়াকিম

4

ম্যানিফেস্টে:

<activity android:name=".activity.MainActivity"
        android:screenOrientation="portrait"
        tools:ignore="LockedOrientationActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

বা: মূল কার্যকলাপে c

@SuppressLint("SourceLockedOrientationActivity")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

আমি পেতে app/src/main/AndroidManifest.xml; lineNumber: 20; columnNumber: 50; The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound.। যোগ করার পদ্ধতি xmlns:tools="http://schemas.android.com/tools"solves সমস্যা রুট উপাদানের ক্ষেত্রে
Żabojad

3

পুরানো পোস্ট আমি জানি। আপনার অ্যাপ্লিকেশন সর্বদা পোর্ট্রেট মোডে চালানোর জন্য এমনকি ওরিয়েন্টেশন ইত্যাদি হয়ে যেতে পারে বা অদলবদল করা যেতে পারে ইত্যাদি (উদাহরণস্বরূপ, ট্যাবলেটগুলিতে) আমি এই ফাংশনটি ডিজাইন করেছি যা প্রতিকৃতি এবং ল্যান্ডস্কেপ কীভাবে তা প্রয়োজন ছাড়াই ডান দিকনির্দেশনায় ডিভাইসটি সেট করতে ব্যবহৃত হয় বৈশিষ্ট্যগুলি ডিভাইসে সংগঠিত হয়।

   private void initActivityScreenOrientPortrait()
    {
        // Avoid screen rotations (use the manifests android:screenOrientation setting)
        // Set this to nosensor or potrait

        // Set window fullscreen
        this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        DisplayMetrics metrics = new DisplayMetrics();
        this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

         // Test if it is VISUAL in portrait mode by simply checking it's size
        boolean bIsVisualPortrait = ( metrics.heightPixels >= metrics.widthPixels ); 

        if( !bIsVisualPortrait )
        { 
            // Swap the orientation to match the VISUAL portrait mode
            if( this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT )
             { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
            else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); }
        }
        else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); }

    }

একটি যাদুমন্ত্র মত কাজ করে!

বিজ্ঞপ্তি: this.activityআপনার ক্রিয়াকলাপ দ্বারা পরিবর্তন করুন বা এটি মূল this.activityক্রিয়ায় যুক্ত করুন এবং সরান ;-)


-5

আমি ব্যবহার করি

 android:screenOrientation="nosensor"

আপনি সাইড ডাউন পোর্ট্রেট মোডটি সমর্থন করতে না চাইলে এটি সহায়ক।


যদি এটি আমার মনে হয় যা এটি করে তবে এটি পর্দার প্রতিকৃতিতে আসলেই জোর করে না, যা আপনি করতে চাইতে পারেন।
লাসি কিনুনুনেন

আপনি কেন এই মন্তব্যটি সরাবেন না! এর কোনও অর্থ হয় না
আলেকজান্ডার জালডোস্তানোভ

অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলটিতে আপনার << কার্যকলাপ> অ্যান্ড্রয়েডের জন্য কেবলমাত্র বৈশিষ্ট্য যুক্ত করুন: স্ক্রিন ওরিয়েন্টেশন = "প্রতিকৃতি"
অবিনাশ শিন্ডে

আপনার উত্তরের জন্য ধন্যবাদ, এটি আমার পক্ষে সহায়ক।
মোঃ শোফিউল্লা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.