android - কনস্ট্রেন্টলয়েআউট দিক অনুপাত




android-layout scale (2)

উপায় app:layout_constraintDimensionRatio জন্য আপনার বোঝাপড়া app:layout_constraintDimensionRatio কাজ করে। আপনি যদি app:layout_constraintDimensionRatio="H,3:1" সেট করেন app:layout_constraintDimensionRatio="H,3:1" তারপরে এর অর্থ হ'ল প্রস্থটি প্রথমে অন্যান্য সীমাবদ্ধতা থেকে গণনা করা হবে এবং তারপরে অনুপাত অনুসারে উচ্চতা সামঞ্জস্য করা হবে। আপনার বাস্তবায়নের সাথে একমাত্র সমস্যা হ'ল আপনি app:layout_constraintBottom_toBottomOf="parent" , যাতে এটি app:layout_constraintDimensionRatio উপেক্ষা করা হবে।

আপনার চিত্রভিউকে 3: 1 টির অনুপাতের আকার দিতে এখানে বিন্যাসটি রয়েছে:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FF0000">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:background="#0000FF"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintDimensionRatio="H,3:1" />

</android.support.constraint.ConstraintLayout>

এবং এখানে ফলাফল দেখুন:

নিম্নলিখিত লেআউট ফাইলটি বিবেচনা করুন:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.constraint.ConstraintLayout
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF0000"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="#0000FF"
            android:padding="16dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintDimensionRatio="H,3:1"
            tools:layout_editor_absoluteX="16dp" />

    </android.support.constraint.ConstraintLayout>

</RelativeLayout>

অ্যাপটি কীভাবে লেআউট_ কনট্রায়েন্টডাইমেনশন রেটিও কাজ করে তা আমি নিশ্চিত নই। আমার বোঝার অনুপাতটি সর্বদা প্রস্থ: উচ্চতা। সুতরাং 3: 1 সর্বদা ইমেজভিউকে উচ্চতার চেয়ে 3 গুণ প্রশস্ত করে তোলে। উপসর্গ এইচ বা ডব্লিউ কনস্ট্রেন্টলয়েআউটকে বলে যে কোন মাত্রার অনুপাতকে সম্মান করা উচিত। যদি এটি এইচ হয় তবে এর অর্থ হ'ল প্রস্থটি অন্যান্য সীমাবদ্ধতা থেকে প্রথমে গণনা করা হবে এবং তারপরে অনুপাত অনুসারে উচ্চতা সামঞ্জস্য করা হবে। তবে এটি বিন্যাসের ফলাফল:

উচ্চতা প্রস্থের চেয়ে 3 গুণ বড় যা অপ্রত্যাশিত। অ্যাপ্লিকেশনটির সাথে কীভাবে মাত্রাগুলি গণনা করা হচ্ছে তা আমাকে কেউ ব্যাখ্যা করতে পারেন: লেআউট_সেইন্ট্রাইটডাইমেনশন রেটিও সেটিং?


এই চিত্র ImageView বৈশিষ্ট্যগুলি একবার দেখুন:

    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"

এই বৈশিষ্ট্যগুলি layout_constraintDimensionRatio ওভাররাইড করে layout_constraintDimensionRatio কারণে layout_constraintDimensionRatio View মূল পিতামাতার নীচে, উপরে এবং বামে সীমাবদ্ধ থাকে যার ফলে layout_constraintDimensionRatio মূল পর্দার বাম, শীর্ষ এবং নীচের অংশগুলি দখল করে।

    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"

এটি একটি সমাধান হবে। আপনি যদি শীর্ষে বা তদ্বিপরীতভাবে layout_constraintBottom_toBottomOf প্রদর্শিত চান তবে আপনি layout_constraintBottom_toBottomOf বাদ layout_constraintBottom_toBottomOf পারেন। উপরোক্ত সমস্ত প্রতিবন্ধকতাগুলি সম্পূর্ণরূপে layout_constraintDimensionRatio , যা সবচেয়ে প্রস্তাবিত সমাধান হবে।





android-constraintlayout