android - শতাংশ মান সহ কনস্ট্রেন্টলয়েট কীভাবে কাজ করবেন?




android-studio android-support-library (8)

অ্যান্ড্রয়েড স্টুডিও ২.২ এর পূর্বরূপ 1 সহ গুগল তার সমর্থন লাইব্রেরিতে একটি নতুন লেআউট প্রকাশ করেছে: ConstraintLayout । কনস্ট্রেন্টলয়েআউট দিয়ে অ্যান্ড্রয়েড স্টুডিওতে ডিজাইনের সরঞ্জামটি ব্যবহার করা আরও সহজ, তবে আমি আপেক্ষিক আকারগুলি (লাইনারালাইউটের মতো পার্সেন্টস বা 'ওয়েট') ব্যবহার করার উপায় খুঁজে পাই না। পারসেন্টের উপর ভিত্তি করে প্রতিবন্ধকতা নির্ধারণ করার কোনও উপায় আছে কি? উদাহরণস্বরূপ, একটি দৃশ্যের 40% স্ক্রিন গ্রহণ করুন, দর্শনগুলির মধ্যে 20% মার্জিন তৈরি করুন, একটি দর্শনের প্রস্থকে অন্য দর্শকের প্রস্থের 50% এ সেট করুন?


নির্দেশিকা কীভাবে ব্যবহার করবেন

গৃহীত উত্তরটি কীভাবে গাইডলাইন ব্যবহার করবেন এবং "শিরোনাম" কী তা সম্পর্কে কিছুটা অস্পষ্ট।

ধাপ

প্রথমে একটি গাইডলাইন যুক্ত করুন।

সীমাবদ্ধতা দৃশ্যমান করতে গাইডলাইনটি নির্বাচন করুন বা এটিকে কিছুটা সরান।

তারপরে শতাংশ না হওয়া অবধি গোল বৃত্ত ("শিরোনাম") ক্লিক করুন। তারপরে আপনি এই শতাংশটি 50% বা আপনি যা খুশি তে টেনে আনতে পারেন।

এরপরে আপনি match_constraint পিতামাতার কিছু শতাংশ করতে ( match_constraint ব্যবহার করে) গাইডলাইনে সীমাবদ্ধ রাখতে পারেন match_constraint


"কনস্ট্রেন্টলয়েআউট 1.1.0-বিটা 1" হিসাবে আপনি প্রস্থ এবং উচ্চতা নির্ধারণ করতে শতাংশ ব্যবহার করতে পারেন।

android:layout_width="0dp"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent=".4"

এটি স্ক্রিনের প্রস্থের 40% প্রস্থকে সংজ্ঞায়িত করবে। শতাংশে এবং এর দিকনির্দেশগুলির সংমিশ্রণ আপনাকে যে কোনও শতাংশ-ভিত্তিক বিন্যাস তৈরি করতে দেয় want


আপনি বর্তমানে বেশ কয়েকটি উপায়ে এটি করতে পারেন।

একটি হ'ল গাইডলাইন তৈরি করা (ডিজাইনের অঞ্চলটিতে ডান ক্লিক করুন, তারপরে উল্লম্ব / অনুভূমিক নির্দেশিকা যুক্ত করুন)। তারপরে আপনি অবস্থানটি শতাংশের ভিত্তিতে পরিবর্তন করতে গাইডলাইনের "শিরোনাম" ক্লিক করতে পারেন। শেষ অবধি, আপনি নির্দেশিকাগুলিতে মতামত সীমাবদ্ধ করতে পারেন।

আরেকটি উপায় হ'ল পক্ষপাতদু (শতাংশ) ব্যবহার করে একটি অবস্থানের অবস্থান এবং তারপরে সেই দৃশ্যের সাথে অন্যান্য ভিউ অ্যাঙ্কর করা।

এটি বলেছিল, আমরা কীভাবে শতাংশভিত্তিক মাত্রাগুলি সরবরাহ করব সে সম্পর্কে চিন্তাভাবনা করছি। আমি কোনও প্রতিশ্রুতি দিতে পারি না তবে এটি এমন কিছু যা আমরা যুক্ত করতে চাই।


আমি জানি যে ওপি মূলত যা চেয়েছিল তা সরাসরি নয় তবে আমার যখন একইরকম প্রশ্ন হয়েছিল তখন এই পরিস্থিতিটি আমাকে অনেকটা সহায়তা করেছিল .. কোডের মাধ্যমে লেআউট উইন্ডোর আকার (যা আমি নিয়মিত ব্যবহার করি) পরিবর্তন করতে চাইছেন এমন লোকদের জন্য এটি যুক্ত করা । প্রশ্নের ক্রিয়াকলাপে এটি আপনার অনক্রিটে যুক্ত করুন। (এটি ৮০% এ পরিবর্তন করে)

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

int width = dm.widthPixels;
int height = dm.heightPixels;

getWindow().setLayout((int)(width * 0.8), (int)(height * 0.8));

এখানে একটি দ্রুত রেফারেন্স রাখা দরকারী হতে পারে।
ব্যবহার করুন: app:layout_constraintGuide_percent সহ একটি গাইডলাইন app:layout_constraintGuide_percent মতো:

<android.support.constraint.Guideline
    android:id="@+id/guideline"
    android:layout_width="1dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.5"/>

এবং তারপরে আপনি অন্যান্য দর্শনগুলির জন্য অ্যাঙ্কর পয়েন্ট হিসাবে এই নির্দেশিকাটি ব্যবহার করতে পারেন।

দ্রষ্টব্য: অ্যান্ড্রয়েডএক্স শিল্পকলা ব্যবহার করার সময় androidx.constraintlayout.widget.Guidline ব্যবহার করুন।


কনস্ট্রেন্টলয়েট v1.1 এর নতুন প্রকাশের সাথে আপনি এখন নিম্নলিখিতটি করতে পারেন:

<Button
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintHeight_percent="0.2"
app:layout_constraintWidth_percent="0.65" />

এটি বোতামটি প্যারেন্ট ভিউয়ের উচ্চতা 20% এবং প্রস্থের 65% হতে সীমাবদ্ধ করবে।


কেবল আপনার গাইডলাইন ট্যাগটিতে কেবল প্রতিস্থাপন করুন

app:layout_constraintGuide_percent="0.7"

সঙ্গে

 <ImageView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:src="@drawable/top_image"
        app:layout_constraintDimensionRatio="16:9"        
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

যেখানে 0.7 এর অর্থ 70%।

এছাড়াও যদি আপনি এখন গাইডলাইনগুলি টেনে আনার চেষ্টা করেন তবে টেনে নেওয়া মানটি এখন% বয়সের মধ্যে প্রদর্শিত হবে।


গাইডলাইনটি অমূল্য - এবং অ্যাপ্লিকেশন: লেআউট_কন্ট্রাইন্টগুইড_পারসেন্ট দুর্দান্ত বন্ধু ... তবে কখনও কখনও আমরা গাইডলাইন ছাড়াই শতাংশ চাই। এখন ওজন ব্যবহার করা সম্ভব:

android:layout_width="0dp"
app:layout_constraintHorizontal_weight="1"

এখানে আরও একটি সম্পূর্ণ উদাহরণ যা অতিরিক্ত ওজন সহ একটি গাইডলাইন ব্যবহার করে:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    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:padding="16dp"
    tools:context="android.itomerbu.layoutdemo.MainActivity">

    <android.support.constraint.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.44"/>

    <Button
        android:id="@+id/btnThird"
        android:layout_width="0dp"
        app:layout_constraintHorizontal_weight="1"
        android:layout_height="wrap_content"
        android:text="@string/btnThird"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginBottom="8dp"
        app:layout_constraintRight_toLeftOf="@+id/btnTwoThirds"
        app:layout_constraintBottom_toTopOf="@+id/guideline"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"/>

    <Button
        android:id="@+id/btnTwoThirds"
        app:layout_constraintHorizontal_weight="2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/btnTwoThirds"
        app:layout_constraintBottom_toBottomOf="@+id/btnThird"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/btnThird"/>
</android.support.constraint.ConstraintLayout>






android-constraintlayout