অঙ্কনযোগ্য সম্পদ

একটি অঙ্কনযোগ্য সংস্থান হল একটি গ্রাফিকের জন্য একটি সাধারণ ধারণা যা স্ক্রিনে আঁকা যেতে পারে এবং আপনি getDrawable(int) এর মতো APIগুলি পুনরুদ্ধার করতে পারেন বা android:drawable এবং android:icon এর মতো বৈশিষ্ট্য সহ অন্য XML সংস্থানে প্রয়োগ করতে পারেন। অঙ্কনযোগ্য বিভিন্ন ধরনের আছে:

বিটম্যাপ ফাইল
একটি বিটম্যাপ গ্রাফিক ফাইল (PNG, WEBP, JPG, বা GIF)। একটি BitmapDrawable তৈরি করে।
নয়-প্যাচ ফাইল
প্রসারিত অঞ্চল সহ একটি পিএনজি ফাইল সামগ্রীর উপর ভিত্তি করে চিত্রগুলিকে পুনরায় আকার দিতে দেয় ( .9.png )। একটি NinePatchDrawable তৈরি করে।
স্তর তালিকা
একটি অঙ্কনযোগ্য যা অন্যান্য অঙ্কনযোগ্য একটি অ্যারে পরিচালনা করে। এগুলি অ্যারে ক্রমে আঁকা হয়, তাই সবচেয়ে বড় সূচক সহ উপাদানটি উপরে আঁকা হয়। একটি LayerDrawable তৈরি করে।
রাজ্য তালিকা
একটি XML ফাইল যা বিভিন্ন রাজ্যের জন্য বিভিন্ন বিটম্যাপ গ্রাফিক্স উল্লেখ করে—উদাহরণস্বরূপ, একটি বোতামে ট্যাপ করা হলে একটি ভিন্ন চিত্র ব্যবহার করা। একটি StateListDrawable তৈরি করে।
স্তর তালিকা
একটি XML ফাইল যা একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে যা একটি সংখ্যক বিকল্প অঙ্কনযোগ্য পরিচালনা করে, প্রতিটির জন্য সর্বাধিক সংখ্যাসূচক মান নির্ধারিত হয়। একটি LevelListDrawable তৈরি করে।
স্থানান্তর অঙ্কনযোগ্য
একটি XML ফাইল যা একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে যা দুটি অঙ্কনযোগ্য সংস্থানের মধ্যে ক্রস-ফেড করতে পারে। একটি TransitionDrawable তৈরি করে।
ইনসেট অঙ্কনযোগ্য
একটি XML ফাইল যা একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে যা একটি নির্দিষ্ট দূরত্বের দ্বারা আরেকটি অঙ্কনযোগ্য ইনসেট করে। এটি উপযোগী যখন একটি দৃশ্যের জন্য একটি পটভূমির প্রয়োজন হয় যা দৃশ্যের প্রকৃত সীমার চেয়ে ছোট।
ক্লিপ অঙ্কনযোগ্য
একটি XML ফাইল যা একটি অঙ্কনযোগ্যকে সংজ্ঞায়িত করে যা এই অঙ্কনযোগ্য এর বর্তমান স্তরের মানের উপর ভিত্তি করে অন্য ড্রয়েবলকে ক্লিপ করে। একটি ClipDrawable তৈরি করে।
স্কেল অঙ্কনযোগ্য
একটি XML ফাইল যা একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে যা তার বর্তমান স্তরের মানের উপর ভিত্তি করে অন্য অঙ্কনযোগ্য আকার পরিবর্তন করে। একটি ScaleDrawable তৈরি করে
আকৃতি অঙ্কনযোগ্য
একটি XML ফাইল যা রং এবং গ্রেডিয়েন্ট সহ একটি জ্যামিতিক আকৃতি নির্ধারণ করে। একটি GradientDrawable তৈরি করে।

কিভাবে একটি AnimationDrawable তৈরি করতে হয় সে সম্পর্কে তথ্যের জন্য, অ্যানিমেশন রিসোর্স ডকুমেন্ট দেখুন।

দ্রষ্টব্য: একটি রঙের সংস্থান XML-এ অঙ্কনযোগ্য হিসাবেও ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, অঙ্কনযোগ্য একটি রাষ্ট্রীয় তালিকা তৈরি করার সময়, আপনি android:drawable বৈশিষ্ট্য ( android:drawable="@color/green" ) এর জন্য একটি রঙের সংস্থান উল্লেখ করতে পারেন।

বিটম্যাপ

একটি বিটম্যাপ ছবি। অ্যান্ড্রয়েড নিম্নলিখিত ফর্ম্যাটে বিটম্যাপ ফাইলগুলিকে সমর্থন করে: PNG (পছন্দের), WEBP (পছন্দের, API স্তর 17 বা উচ্চতর প্রয়োজন), JPG (গ্রহণযোগ্য), GIF (নিরুৎসাহিত)৷

আপনি রিসোর্স আইডি হিসাবে ফাইলের নাম ব্যবহার করে সরাসরি একটি বিটম্যাপ ফাইল উল্লেখ করতে পারেন, বা XML-এ একটি উপনাম রিসোর্স আইডি তৈরি করতে পারেন।

দ্রষ্টব্য: বিল্ড প্রক্রিয়া চলাকালীন aapt টুল দ্বারা বিটম্যাপ ফাইলগুলি স্বয়ংক্রিয়ভাবে লসলেস ইমেজ কম্প্রেশনের সাথে অপ্টিমাইজ করা যেতে পারে। উদাহরণস্বরূপ, একটি সত্য-রঙের PNG যার জন্য 256 টির বেশি রঙের প্রয়োজন হয় না একটি রঙ প্যালেট সহ একটি 8-বিট PNG তে রূপান্তরিত হতে পারে। এর ফলে সমান মানের একটি চিত্র তৈরি হয় যার কম মেমরির প্রয়োজন হয়।

সুতরাং, সচেতন থাকুন যে এই ডিরেক্টরিতে স্থাপন করা ইমেজ বাইনারিগুলি বিল্ডের সময় পরিবর্তিত হতে পারে। আপনি যদি একটি বিটম্যাপে রূপান্তর করার জন্য একটি বিট স্ট্রিম হিসাবে একটি ছবি পড়ার পরিকল্পনা করেন, তাহলে আপনার ছবিগুলিকে res/raw/ ফোল্ডারে রাখুন, যেখানে সেগুলি অপ্টিমাইজ করা হয় না৷

বিটম্যাপ ফাইল

একটি বিটম্যাপ ফাইল হল একটি PNG, WEBP, JPG, বা GIF ফাইল। আপনি যখন res/drawable/ ডিরেক্টরিতে সেভ করেন তখন Android এই ফাইলগুলির যেকোন একটির জন্য একটি Drawable সংস্থান তৈরি করে।

ফাইল অবস্থান:
res/drawable/ filename .png ( .png , .webp , .jpg , বা .gif )
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি BitmapDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
উদাহরণ:
res/drawable/myimage.png এ সংরক্ষিত একটি চিত্রের সাথে, এই লেআউট XML চিত্রটিকে একটি দৃশ্যে প্রয়োগ করে:
<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/myimage" />

নিম্নলিখিত অ্যাপ্লিকেশন কোডটি চিত্রটিকে Drawable হিসাবে পুনরুদ্ধার করে:

কোটলিন

val drawable: Drawable? = ResourcesCompat.getDrawable(resources, R.drawable.myimage, null)

জাভা

Resources res = getResources();
Drawable drawable = ResourcesCompat.getDrawable(res, R.drawable.myimage, null);
আরো দেখুন:

XML বিটম্যাপ

একটি XML বিটম্যাপ হল XML-এ সংজ্ঞায়িত একটি সংস্থান যা একটি বিটম্যাপ ফাইলকে নির্দেশ করে। প্রভাবটি একটি কাঁচা বিটম্যাপ ফাইলের একটি উপনাম। XML বিটম্যাপের জন্য অতিরিক্ত বৈশিষ্ট্য নির্দিষ্ট করতে পারে, যেমন ডিথারিং এবং টাইলিং।

দ্রষ্টব্য: আপনি একটি <bitmap> উপাদান একটি <item> উপাদানের শিশু হিসাবে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, একটি রাজ্য তালিকা বা স্তর তালিকা তৈরি করার সময়, আপনি একটি <item> উপাদান থেকে android:drawable বৈশিষ্ট্যটি বাদ দিতে পারেন এবং এর ভিতরে একটি <bitmap> নেস্ট করতে পারেন যা অঙ্কনযোগ্য আইটেমটিকে সংজ্ঞায়িত করে।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি BitmapDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@[package:]drawable/drawable_resource"
    android:antialias=["true" | "false"]
    android:dither=["true" | "false"]
    android:filter=["true" | "false"]
    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                      "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                      "center" | "fill" | "clip_vertical" | "clip_horizontal"]
    android:mipMap=["true" | "false"]
    android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
উপাদান:
<bitmap>
প্রয়োজন। বিটম্যাপ উৎস এবং এর বৈশিষ্ট্য সংজ্ঞায়িত করে।

গুণাবলী:

xmlns:android
স্ট্রিং XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে। <bitmap> রুট এলিমেন্ট হলেই এটি প্রয়োজন। যখন <bitmap> একটি <item> ভিতরে নেস্ট করা হয় তখন এটির প্রয়োজন হয় না।
android:src
অঙ্কনযোগ্য সম্পদপ্রয়োজন একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:antialias
বুলিয়ান অ্যান্টিলিয়াসিং সক্ষম বা অক্ষম করে।
android:dither
বুলিয়ান বিটম্যাপের স্ক্রীনের মতো একই পিক্সেল কনফিগারেশন না থাকলে, যেমন একটি RGB 565 স্ক্রিনে একটি ARGB 8888 বিটম্যাপ না থাকলে বিটম্যাপের ডিথারিং সক্ষম বা অক্ষম করে৷
android:filter
বুলিয়ান বিটম্যাপ ফিল্টারিং সক্ষম বা নিষ্ক্রিয় করে। ফিল্টারিং ব্যবহার করা হয় যখন বিটম্যাপ সঙ্কুচিত বা প্রসারিত হয় তার চেহারা মসৃণ করার জন্য।
android:gravity
কীওয়ার্ড । বিটম্যাপের জন্য মাধ্যাকর্ষণ সংজ্ঞায়িত করে। মাধ্যাকর্ষণ নির্দেশ করে যে বিটম্যাপটি কন্টেইনারের চেয়ে ছোট হলে তার ধারকটিতে অঙ্কনযোগ্যকে কোথায় রাখতে হবে।

নিম্নলিখিত ধ্রুবক মানগুলির মধ্যে এক বা একাধিক হতে হবে, | দ্বারা পৃথক করা হয়েছে৷ :

মান বর্ণনা
top বস্তুটিকে তার পাত্রের শীর্ষে রাখুন, এর আকার পরিবর্তন করবেন না।
bottom বস্তুটিকে তার পাত্রের নীচে রাখুন, এর আকার পরিবর্তন করবেন না।
left বস্তুটিকে তার পাত্রের বাম প্রান্তে রাখুন, এর আকার পরিবর্তন করবেন না।
right বস্তুটিকে তার পাত্রের ডান প্রান্তে রাখুন, এর আকার পরিবর্তন করবেন না।
center_vertical বস্তুটিকে তার পাত্রের উল্লম্ব কেন্দ্রে রাখুন, এর আকার পরিবর্তন না করে।
fill_vertical প্রয়োজনে বস্তুর উল্লম্ব আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে।
center_horizontal বস্তুটিকে তার পাত্রের অনুভূমিক কেন্দ্রে রাখুন, এর আকার পরিবর্তন করবেন না।
fill_horizontal প্রয়োজনে বস্তুর অনুভূমিক আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে।
center বস্তুটিকে তার পাত্রের মাঝখানে উল্লম্ব এবং অনুভূমিক উভয় অক্ষে রাখুন, এর আকার পরিবর্তন করবেন না।
fill প্রয়োজনে বস্তুর অনুভূমিক এবং উল্লম্ব আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে। এটি ডিফল্ট।
clip_vertical অতিরিক্ত বিকল্প যা সন্তানের উপরের এবং/অথবা নীচের প্রান্তগুলিকে তার পাত্রের সীমানায় ক্লিপ করার জন্য সেট করা যেতে পারে। ক্লিপটি উল্লম্ব মহাকর্ষের উপর ভিত্তি করে তৈরি করা হয়েছে: একটি উপরের মাধ্যাকর্ষণ নীচের প্রান্তটি ক্লিপ করে, একটি নীচের মাধ্যাকর্ষণ উপরের প্রান্তটি ক্লিপ করে এবং উভয় প্রান্তকে ক্লিপ করে না।
clip_horizontal অতিরিক্ত বিকল্প যা সন্তানের বাম এবং/অথবা ডান প্রান্তগুলি তার পাত্রের সীমানায় ক্লিপ করার জন্য সেট করা যেতে পারে। ক্লিপটি অনুভূমিক মাধ্যাকর্ষণ ভিত্তিক: একটি বাম মাধ্যাকর্ষণ ডান প্রান্তটি ক্লিপ করে, একটি ডান মাধ্যাকর্ষণ বাম প্রান্তটি ক্লিপ করে এবং উভয় প্রান্তকে ক্লিপ করে না।
android:mipMap
বুলিয়ান মিপম্যাপ ইঙ্গিত সক্রিয় বা নিষ্ক্রিয় করে। আরও তথ্যের জন্য setHasMipMap() দেখুন। ডিফল্ট মান মিথ্যা।
android:tileMode
কীওয়ার্ড । টাইল মোড সংজ্ঞায়িত করে। যখন টাইল মোড সক্রিয় করা হয়, বিটম্যাপ পুনরাবৃত্তি হয়। টাইল মোড সক্ষম হলে মাধ্যাকর্ষণ উপেক্ষা করা হয়।

নিম্নলিখিত ধ্রুবক মান এক হতে হবে:

মান বর্ণনা
disabled বিটম্যাপ টাইল করবেন না। এটি ডিফল্ট মান।
clamp যদি শেডার তার আসল সীমার বাইরে আঁকেন তবে প্রান্তের রঙের প্রতিলিপি করুন
repeat শেডারের চিত্রটি অনুভূমিকভাবে এবং উল্লম্বভাবে পুনরাবৃত্তি করুন।
mirror শেডারের চিত্রটি অনুভূমিকভাবে এবং উল্লম্বভাবে পুনরাবৃত্তি করুন, পর্যায়ক্রমে মিরর চিত্রগুলি যাতে সংলগ্ন চিত্রগুলি সর্বদা সিম থাকে।
উদাহরণ:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/icon"
    android:tileMode="repeat" />
আরো দেখুন:

নয়-প্যাচ

একটি NinePatch হল একটি পিএনজি চিত্র যেখানে আপনি প্রসারিতযোগ্য অঞ্চলগুলিকে সংজ্ঞায়িত করতে পারেন যেগুলিকে অ্যান্ড্রয়েড স্কেল করে যখন দৃশ্যের মধ্যে সামগ্রী স্বাভাবিক চিত্রের সীমা ছাড়িয়ে যায়৷ আপনি সাধারণত এই ধরণের চিত্রটিকে একটি দৃশ্যের পটভূমি হিসাবে বরাদ্দ করেন যার কমপক্ষে একটি মাত্রা "wrap_content" এ সেট করা থাকে।

কন্টেন্ট মিটমাট করার জন্য যখন ভিউ বাড়তে থাকে, তখন নয়-প্যাচ ইমেজটিও স্কেল করা হয় ভিউয়ের আকারের সাথে মেলে। নয়-প্যাচ চিত্রের একটি উদাহরণ হল অ্যান্ড্রয়েডের স্ট্যান্ডার্ড Button উইজেট দ্বারা ব্যবহৃত ব্যাকগ্রাউন্ড, যা বোতামের ভিতরে পাঠ্য (বা চিত্র) মিটমাট করার জন্য প্রসারিত করা আবশ্যক।

একটি সাধারণ বিটম্যাপের মতো, আপনি একটি নয়-প্যাচ ফাইল সরাসরি বা XML দ্বারা সংজ্ঞায়িত একটি সংস্থান থেকে উল্লেখ করতে পারেন।

প্রসারিত অঞ্চলগুলির সাথে একটি নয়-প্যাচ ফাইল কীভাবে তৈরি করা যায় সে সম্পর্কে সম্পূর্ণ আলোচনার জন্য, পরিবর্তনযোগ্য বিটম্যাপ তৈরি করুন (9-প্যাচ ফাইল) দেখুন।

নয়-প্যাচ ফাইল

ফাইল অবস্থান:
res/drawable/ filename .9.png
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি NinePatchDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
উদাহরণ:
res/drawable/myninepatch.9.png এ সংরক্ষিত একটি চিত্রের সাথে, এই লেআউট XML একটি দৃশ্যে নয়-প্যাচ প্রয়োগ করে:
<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@drawable/myninepatch" />
আরো দেখুন:

XML নাইন-প্যাচ

একটি XML নাইন-প্যাচ হল XML-এ সংজ্ঞায়িত একটি সংস্থান যা একটি নয়-প্যাচ ফাইলকে নির্দেশ করে। XML ইমেজের জন্য ডিথারিং নির্দিষ্ট করতে পারে।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি NinePatchDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<nine-patch
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@[package:]drawable/drawable_resource"
    android:dither=["true" | "false"] />
উপাদান:
<nine-patch>
প্রয়োজন। নয়-প্যাচ উৎস এবং এর বৈশিষ্ট্য সংজ্ঞায়িত করে।

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
android:src
অঙ্কনযোগ্য সম্পদপ্রয়োজন একটি নয়-প্যাচ ফাইলের রেফারেন্স।
android:dither
বুলিয়ান বিটম্যাপের স্ক্রীনের মতো একই পিক্সেল কনফিগারেশন না থাকলে, যেমন একটি RGB 565 স্ক্রিনে একটি ARGB 8888 বিটম্যাপ না থাকলে বিটম্যাপের ডিথারিং সক্ষম বা অক্ষম করে৷
উদাহরণ:
<?xml version="1.0" encoding="utf-8"?>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/myninepatch"
    android:dither="false" />

স্তর তালিকা

একটি LayerDrawable হল একটি অঙ্কনযোগ্য বস্তু যা অন্যান্য অঙ্কনযোগ্য একটি অ্যারে পরিচালনা করে। তালিকার প্রতিটি অঙ্কনযোগ্য তালিকার ক্রম অনুসারে আঁকা হয়। তালিকার শেষ অঙ্কনযোগ্য শীর্ষে আঁকা হয়।

প্রতিটি অঙ্কনযোগ্য একটি একক <layer-list> উপাদানের মধ্যে একটি <item> উপাদান দ্বারা প্রতিনিধিত্ব করা হয়।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি LayerDrawable এ রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:id="@[+][package:]id/resource_name"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</layer-list>
উপাদান:
<layer-list>
প্রয়োজন। এই মূল উপাদান হতে হবে. এক বা একাধিক <item> উপাদান রয়েছে।

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
<item>
এটির বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত একটি অবস্থানে, অঙ্কনযোগ্য স্তরে স্থাপন করার জন্য একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে। একটি <layer-list> উপাদানের সন্তান হতে হবে। শিশু <bitmap> উপাদান গ্রহণ করে।

গুণাবলী:

android:drawable
অঙ্কনযোগ্য সম্পদপ্রয়োজন একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:id
রিসোর্স আইডি । এই অঙ্কনযোগ্য জন্য একটি অনন্য সম্পদ আইডি. এই আইটেমের জন্য একটি নতুন রিসোর্স আইডি তৈরি করতে, ফর্মটি ব্যবহার করুন: "@+id/ name " । প্লাস চিহ্নটি নির্দেশ করে যে এটি একটি নতুন আইডি হিসাবে তৈরি করা হয়েছে। আপনি View.findViewById() বা Activity.findViewById() দিয়ে অঙ্কনযোগ্য পুনরুদ্ধার এবং সংশোধন করতে এই শনাক্তকারী ব্যবহার করতে পারেন।
android:top
মাত্রা । একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে শীর্ষ অফসেট।
android:right
মাত্রা । ডান অফসেট, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:bottom
মাত্রা । নিচের অফসেট, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:left
মাত্রা । বাম অফসেট, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।

সমস্ত অঙ্কনযোগ্য আইটেম ডিফল্টরূপে ধারণকৃত দৃশ্যের আকারের সাথে মানানসই করার জন্য স্কেল করা হয়। এইভাবে, আপনার চিত্রগুলিকে একটি স্তর তালিকায় বিভিন্ন অবস্থানে রাখলে দৃশ্যের আকার বাড়তে পারে এবং কিছু চিত্র উপযুক্ত হিসাবে স্কেল করতে পারে।

তালিকার আইটেমগুলিকে স্কেলিং এড়াতে, অঙ্কনযোগ্য নির্দিষ্ট করতে এবং মাধ্যাকর্ষণকে এমন কিছুতে সংজ্ঞায়িত করতে <item> উপাদানের ভিতরে একটি <bitmap> উপাদান ব্যবহার করুন যা স্কেল নয়, যেমন "center" । উদাহরণস্বরূপ, নিম্নলিখিত <item> একটি আইটেমকে সংজ্ঞায়িত করে যা তার কন্টেইনার ভিউকে ফিট করার জন্য স্কেল করে:

<item android:drawable="@drawable/image" />

স্কেলিং এড়াতে, নিম্নলিখিত উদাহরণটি কেন্দ্রীভূত মাধ্যাকর্ষণ সহ একটি <bitmap> উপাদান ব্যবহার করে:

<item>
  <bitmap android:src="@drawable/image"
          android:gravity="center" />
</item>
উদাহরণ:
XML ফাইল res/drawable/layers.xml এ সংরক্ষিত হয়েছে :
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
      <bitmap android:src="@drawable/android_red"
        android:gravity="center" />
    </item>
    <item android:top="10dp" android:left="10dp">
      <bitmap android:src="@drawable/android_green"
        android:gravity="center" />
    </item>
    <item android:top="20dp" android:left="20dp">
      <bitmap android:src="@drawable/android_blue"
        android:gravity="center" />
    </item>
</layer-list>

এই উদাহরণটি "center" মাধ্যাকর্ষণ সহ প্রতিটি আইটেমের জন্য অঙ্কনযোগ্য সংস্থান সংজ্ঞায়িত করতে একটি নেস্টেড <bitmap> উপাদান ব্যবহার করে। এটি নিশ্চিত করে যে অফসেট চিত্রগুলির দ্বারা সৃষ্ট আকার পরিবর্তনের কারণে কোনও চিত্রই কন্টেইনারের আকারের সাথে মাপসই করা হয় না।

এই লেআউট XML একটি দৃশ্যে অঙ্কনযোগ্য প্রয়োগ করে:

<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/layers" />

ফলাফল হল ক্রমবর্ধমান অফসেট চিত্রগুলির একটি স্ট্যাক:

আরো দেখুন:

রাজ্য তালিকা

একটি StateListDrawable হল XML-এ সংজ্ঞায়িত একটি অঙ্কনযোগ্য বস্তু যা বস্তুর অবস্থার উপর নির্ভর করে একই গ্রাফিককে উপস্থাপন করতে একাধিক ছবি ব্যবহার করে। উদাহরণস্বরূপ, একটি Button উইজেটের অবস্থা ট্যাপ করা, ফোকাস করা বা কোনোটাই করা যায় না; একটি রাজ্য তালিকা অঙ্কনযোগ্য ব্যবহার করে, আপনি প্রতিটি রাজ্যের জন্য একটি ভিন্ন পটভূমি চিত্র প্রদান করতে পারেন।

আপনি একটি XML ফাইলে রাষ্ট্র তালিকা বর্ণনা করুন. প্রতিটি গ্রাফিক একটি একক <selector> উপাদানের মধ্যে একটি <item> উপাদান দ্বারা প্রতিনিধিত্ব করা হয়। প্রতিটি <item> বিভিন্ন বৈশিষ্ট্য ব্যবহার করে সেই অবস্থা বর্ণনা করতে যেখানে এটি অঙ্কনযোগ্য গ্রাফিক হিসাবে ব্যবহৃত হয়।

প্রতিটি রাজ্যের পরিবর্তনের সময়, রাজ্যের তালিকাটি উপরে থেকে নীচের দিকে সরানো হয় এবং বর্তমান অবস্থার সাথে মেলে এমন প্রথম আইটেমটি ব্যবহার করা হয়। নির্বাচন "সেরা ম্যাচ" এর উপর ভিত্তি করে নয় , বরং প্রথম আইটেম যা রাষ্ট্রের ন্যূনতম মানদণ্ড পূরণ করে।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি StateListDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize=["true" | "false"]
    android:dither=["true" | "false"]
    android:variablePadding=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_hovered=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_activated=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
</selector>
উপাদান:
<selector>
প্রয়োজন। এই মূল উপাদান হতে হবে. এক বা একাধিক <item> উপাদান রয়েছে।

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
android:constantSize
বুলিয়ান সত্য যদি অঙ্কনযোগ্য এর রিপোর্ট করা অভ্যন্তরীণ আকার অবস্থার পরিবর্তনের সাথে সাথে স্থির থাকে (আকারটি সমস্ত রাজ্যের সর্বোচ্চ); বর্তমান অবস্থার উপর ভিত্তি করে আকার পরিবর্তিত হলে মিথ্যা। ডিফল্ট মিথ্যা.
android:dither
বুলিয়ান যদি বিটম্যাপের স্ক্রীনের মতো একই পিক্সেল কনফিগারেশন না থাকে, যেমন একটি RGB 565 স্ক্রিনে একটি ARGB 8888 বিটম্যাপ না থাকলে বিটম্যাপের ডিথারিং সক্ষম করার জন্য সত্য; ডিথারিং নিষ্ক্রিয় করতে মিথ্যা। ডিফল্ট সত্য।
android:variablePadding
বুলিয়ান ড্রয়েবলের প্যাডিং নির্বাচন করা বর্তমান অবস্থার উপর ভিত্তি করে পরিবর্তিত হলে সত্য; মিথ্যা হলে প্যাডিং একই থাকতে হবে, সমস্ত রাজ্যের সর্বোচ্চ প্যাডিংয়ের উপর ভিত্তি করে। এই বৈশিষ্ট্যটি সক্ষম করার জন্য আপনাকে স্টেট পরিবর্তনের সময় পারফর্মিং লেআউটের সাথে মোকাবিলা করতে হবে, যা প্রায়শই সমর্থিত হয় না। ডিফল্ট মিথ্যা.
<item>
নির্দিষ্ট অবস্থার সময় ব্যবহার করার জন্য একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে, যেমন তার বৈশিষ্ট্যগুলির দ্বারা বর্ণনা করা হয়েছে৷ একটি <selector> উপাদানের সন্তান হতে হবে।

গুণাবলী:

android:drawable
অঙ্কনযোগ্য সম্পদপ্রয়োজন একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:state_pressed
বুলিয়ান সত্য যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি ট্যাপ করা হয়, যেমন যখন একটি বোতাম স্পর্শ করা হয়; মিথ্যা যদি এই আইটেমটি ডিফল্ট, নন-ট্যাপ অবস্থায় ব্যবহার করা হয়।
android:state_focused
বুলিয়ান সত্য যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুর ইনপুট ফোকাস থাকে, যেমন ব্যবহারকারী যখন একটি পাঠ্য ইনপুট নির্বাচন করে; মিথ্যা যদি এই আইটেমটি ডিফল্ট, অ-কেন্দ্রিক অবস্থায় ব্যবহার করা হয়।
android:state_hovered
বুলিয়ান সত্য যদি এই আইটেমটি ব্যবহার করা হয় যখন কার্সার বস্তুর উপর ঘোরাফেরা করে; মিথ্যা যদি এই আইটেমটি ডিফল্ট, নন-হোভার অবস্থায় ব্যবহার করা হয়। প্রায়শই, এই অঙ্কনযোগ্য "ফোকাসড" অবস্থার জন্য ব্যবহৃত একই অঙ্কনযোগ্য হতে পারে।

API স্তর 14-এ প্রবর্তন করা হয়েছে।

android:state_selected
বুলিয়ান সত্য যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি বর্তমান ব্যবহারকারী নির্বাচন যখন একটি নির্দেশমূলক নিয়ন্ত্রণের সাথে নেভিগেট করার সময়, যেমন একটি ডি-প্যাড সহ একটি তালিকার মাধ্যমে নেভিগেট করার সময়; মিথ্যা যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি নির্বাচন করা না হয়।

নির্বাচিত অবস্থাটি ব্যবহার করা হয় যখন android:state_focused যথেষ্ট নয়, যেমন যখন তালিকার দৃশ্যে ফোকাস থাকে এবং এর মধ্যে একটি আইটেম একটি D-প্যাড দিয়ে নির্বাচন করা হয়।

android:state_checkable
বুলিয়ান বস্তুটি নির্বাচনযোগ্য হলে এই আইটেমটি ব্যবহার করা হলে সত্য; মিথ্যা যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি নির্বাচনযোগ্য না হয়। শুধুমাত্র উপযোগী যদি বস্তুটি একটি নির্বাচনযোগ্য এবং অ-নির্বাচনযোগ্য উইজেটের মধ্যে স্থানান্তর করতে পারে।
android:state_checked
বুলিয়ান বস্তুটি নির্বাচন করার সময় এই আইটেমটি ব্যবহার করা হলে সত্য; মিথ্যা যদি এটি ব্যবহার করা হয় যখন বস্তুটি অ-নির্বাচিত হয়।
android:state_enabled
বুলিয়ান সত্য যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি সক্রিয় থাকে, যার অর্থ স্পর্শ বা ক্লিক ইভেন্টগুলি গ্রহণ করতে সক্ষম; বস্তুটি নিষ্ক্রিয় হলে এটি ব্যবহার করা হলে মিথ্যা।
android:state_activated
বুলিয়ান সত্য যদি এই আইটেমটি ব্যবহার করা হয় যখন অবজেক্টটি স্থায়ী নির্বাচন হিসাবে সক্রিয় করা হয়, যেমন একটি স্থায়ী নেভিগেশন ভিউতে পূর্বে নির্বাচিত তালিকা আইটেমটিকে "হাইলাইট" করার জন্য; বস্তুটি সক্রিয় না হলে এটি ব্যবহার করা হলে মিথ্যা।

API স্তর 11-এ প্রবর্তিত হয়েছে।

android:state_window_focused
বুলিয়ান সত্য যদি এই আইটেমটি ব্যবহার করা হয় যখন অ্যাপ্লিকেশন উইন্ডোতে ফোকাস থাকে, অর্থাৎ অ্যাপ্লিকেশনটি অগ্রভাগে থাকে; মিথ্যা যদি এই আইটেমটি ব্যবহার করা হয় যখন অ্যাপ্লিকেশান উইন্ডোতে ফোকাস না থাকে, উদাহরণস্বরূপ, যদি নোটিফিকেশন শেডটি টানা হয় বা একটি ডায়ালগ দেখা যায়।

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

উদাহরণ:
XML ফাইল res/drawable/button.xml এ সংরক্ষিত হয়েছে :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/button_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/button_focused" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@drawable/button_focused" /> <!-- hovered -->
    <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

এই লেআউট XML একটি বোতামে অঙ্কনযোগ্য রাজ্য তালিকা প্রয়োগ করে:

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@drawable/button" />
আরো দেখুন:

স্তর তালিকা

একটি অঙ্কনযোগ্য যা অনেকগুলি বিকল্প অঙ্কনযোগ্য পরিচালনা করে, প্রতিটির জন্য সর্বাধিক সংখ্যাসূচক মান নির্ধারিত হয়। setLevel() দিয়ে অঙ্কনযোগ্য স্তরের মান নির্ধারণ করা লেভেল তালিকায় অঙ্কনযোগ্য সংস্থান লোড করে যার একটি android:maxLevel মান পদ্ধতিতে পাস করা মানের চেয়ে বেশি বা সমান।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি LevelListDrawable এ রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<level-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/drawable_resource"
        android:maxLevel="integer"
        android:minLevel="integer" />
</level-list>
উপাদান:
<level-list>
প্রয়োজন। এই মূল উপাদান হতে হবে. এক বা একাধিক <item> উপাদান রয়েছে।

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
<item>
একটি নির্দিষ্ট স্তরে ব্যবহার করার জন্য একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে।

গুণাবলী:

android:drawable
অঙ্কনযোগ্য সম্পদপ্রয়োজন ইনসেট করার জন্য একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:maxLevel
পূর্ণসংখ্যা । এই আইটেমটির জন্য অনুমোদিত সর্বোচ্চ স্তর।
android:minLevel
পূর্ণসংখ্যা । এই আইটেমটির জন্য অনুমোদিত ন্যূনতম স্তর।
উদাহরণ:
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/status_off"
        android:maxLevel="0" />
    <item
        android:drawable="@drawable/status_on"
        android:maxLevel="1" />
</level-list>

একবার এটি একটি View প্রয়োগ করা হলে, স্তরটি setLevel() বা setImageLevel() দিয়ে পরিবর্তন করা যেতে পারে।

আরো দেখুন:

স্থানান্তর অঙ্কনযোগ্য

একটি TransitionDrawable হল একটি অঙ্কনযোগ্য বস্তু যা অন্য দুটি অঙ্কনযোগ্য সম্পদের মধ্যে ক্রস-ফেড করতে পারে।

প্রতিটি অঙ্কনযোগ্য একটি একক <transition> উপাদানের ভিতরে একটি <item> উপাদান দ্বারা প্রতিনিধিত্ব করা হয়। দুটির বেশি আইটেম সমর্থিত নয়। এগিয়ে যেতে, startTransition() কল করুন। পিছনের দিকে ট্রানজিশন করতে, reverseTransition() কল করুন।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি TransitionDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:id="@[+][package:]id/resource_name"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</transition>
উপাদান:
<transition>
প্রয়োজন। এই মূল উপাদান হতে হবে. এক বা একাধিক <item> উপাদান রয়েছে।

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
<item>
অঙ্কনযোগ্য স্থানান্তরের অংশ হিসাবে ব্যবহার করার জন্য একটি অঙ্কনযোগ্য সংজ্ঞায়িত করে। একটি <transition> উপাদানের সন্তান হতে হবে। শিশু <bitmap> উপাদান গ্রহণ করে।

গুণাবলী:

android:drawable
অঙ্কনযোগ্য সম্পদপ্রয়োজন একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:id
রিসোর্স আইডি । এই অঙ্কনযোগ্য জন্য একটি অনন্য সম্পদ আইডি. এই আইটেমের জন্য একটি নতুন রিসোর্স আইডি তৈরি করতে, ফর্মটি ব্যবহার করুন: "@+id/ name " । প্লাস চিহ্নটি নির্দেশ করে যে এটি একটি নতুন আইডি হিসাবে তৈরি করা হয়েছে। আপনি View.findViewById() বা Activity.findViewById() দিয়ে অঙ্কনযোগ্য পুনরুদ্ধার এবং সংশোধন করতে এই শনাক্তকারী ব্যবহার করতে পারেন।
android:top
পূর্ণসংখ্যা । পিক্সেলে শীর্ষ অফসেট।
android:right
পূর্ণসংখ্যা । পিক্সেলে ডান অফসেট।
android:bottom
পূর্ণসংখ্যা । নিচের অংশটি পিক্সেলে অফসেট।
android:left
পূর্ণসংখ্যা । বাম পিক্সেল অফসেট.
উদাহরণ:
XML ফাইল res/drawable/transition.xml এ সংরক্ষিত হয়েছে :
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/on" />
    <item android:drawable="@drawable/off" />
</transition>

এই লেআউট XML একটি দৃশ্যে অঙ্কনযোগ্য প্রয়োগ করে:

<ImageButton
    android:id="@+id/button"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/transition" />

এবং নিম্নলিখিত কোডটি প্রথম আইটেম থেকে দ্বিতীয়টিতে 500 ms রূপান্তর সম্পাদন করে:

কোটলিন

val button: ImageButton = findViewById(R.id.button)
val drawable: Drawable = button.drawable
if (drawable is TransitionDrawable) {
    drawable.startTransition(500)
}

জাভা

ImageButton button = (ImageButton) findViewById(R.id.button);
Drawable drawable = button.getDrawable();
if (drawable instanceof TransitionDrawable) {
    ((TransitionDrawable) drawable).startTransition(500);
}
আরো দেখুন:

ইনসেট অঙ্কনযোগ্য

XML-এ সংজ্ঞায়িত একটি অঙ্কনযোগ্য যা একটি নির্দিষ্ট দূরত্ব দ্বারা আরেকটি অঙ্কনযোগ্য ইনসেট করে। এটি উপযোগী হয় যখন একটি দৃশ্যের একটি পটভূমির প্রয়োজন হয় যা দৃশ্যের প্রকৃত সীমার চেয়ে ছোট।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি InsetDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<inset
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/drawable_resource"
    android:insetTop="dimension"
    android:insetRight="dimension"
    android:insetBottom="dimension"
    android:insetLeft="dimension" />
উপাদান:
<inset>
প্রয়োজন। অঙ্কনযোগ্য ইনসেট সংজ্ঞায়িত করে। এই মূল উপাদান হতে হবে.

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
android:drawable
অঙ্কনযোগ্য সম্পদপ্রয়োজন ইনসেট করার জন্য একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:insetTop
মাত্রা । একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে শীর্ষ ইনসেট।
android:insetRight
মাত্রা । ডান ইনসেট, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:insetBottom
মাত্রা । নীচের ইনসেট, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:insetLeft
মাত্রা । বাম ইনসেট, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
উদাহরণ:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/background"
    android:insetTop="10dp"
    android:insetLeft="10dp" />
আরো দেখুন:

ক্লিপ অঙ্কনযোগ্য

XML-এ সংজ্ঞায়িত একটি অঙ্কনযোগ্য যা এই ড্রয়েবলের বর্তমান স্তরের উপর ভিত্তি করে অন্য ড্রয়েবলকে ক্লিপ করে। আপনি স্তরের উপর ভিত্তি করে শিশু আঁকার যোগ্য কতটা প্রস্থ এবং উচ্চতায় ক্লিপ করা হবে তা নিয়ন্ত্রণ করতে পারেন, সেইসাথে এটির সামগ্রিক পাত্রে কোথায় রাখা হবে তা নিয়ন্ত্রণ করার জন্য একটি মাধ্যাকর্ষণ। প্রায়শই অগ্রগতি বারের মতো জিনিসগুলি বাস্তবায়ন করতে ব্যবহৃত হয়।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি ClipDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<clip
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/drawable_resource"
    android:clipOrientation=["horizontal" | "vertical"]
    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                     "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                     "center" | "fill" | "clip_vertical" | "clip_horizontal"] />
উপাদান:
<clip>
প্রয়োজন। ক্লিপ অঙ্কনযোগ্য সংজ্ঞায়িত করে। এই মূল উপাদান হতে হবে.

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
android:drawable
অঙ্কনযোগ্য সম্পদপ্রয়োজন ক্লিপ করার জন্য একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:clipOrientation
কীওয়ার্ড । ক্লিপ জন্য অভিযোজন.

নিম্নলিখিত ধ্রুবক মান এক হতে হবে:

মান বর্ণনা
horizontal অঙ্কনযোগ্য অনুভূমিকভাবে ক্লিপ করুন।
vertical অঙ্কনযোগ্য উল্লম্বভাবে ক্লিপ করুন.
android:gravity
কীওয়ার্ড । অঙ্কনযোগ্য এর মধ্যে কোথায় ক্লিপ করতে হবে তা নির্দিষ্ট করে।

নিম্নলিখিত ধ্রুবক মানগুলির মধ্যে এক বা একাধিক হতে হবে, | দ্বারা পৃথক করা হয়েছে৷ :

মান বর্ণনা
top বস্তুটিকে তার পাত্রের শীর্ষে রাখুন, এর আকার পরিবর্তন করবেন না। যখন clipOrientation "vertical" হয়, তখন ক্লিপিং অঙ্কনযোগ্য নীচের অংশে ঘটে।
bottom বস্তুটিকে তার পাত্রের নীচে রাখুন, এর আকার পরিবর্তন করবেন না। যখন clipOrientation "vertical" হয়, ক্লিপিং অঙ্কনযোগ্য শীর্ষে ঘটে।
left বস্তুটিকে তার পাত্রের বাম প্রান্তে রাখুন, এর আকার পরিবর্তন করবেন না। এটি ডিফল্ট। যখন clipOrientation "horizontal" হয়, তখন ক্লিপিং অঙ্কনযোগ্য এর ডানদিকে ঘটে।
right বস্তুটিকে তার পাত্রের ডান প্রান্তে রাখুন, এর আকার পরিবর্তন করবেন না। যখন clipOrientation "horizontal" হয়, ক্লিপিং অঙ্কনযোগ্য এর বাম দিকে ঘটে।
center_vertical বস্তুটিকে তার পাত্রের উল্লম্ব কেন্দ্রে রাখুন, এর আকার পরিবর্তন না করে। ক্লিপিং একই আচরণ করে যখন মাধ্যাকর্ষণ "center" হয়।
fill_vertical প্রয়োজনে বস্তুর উল্লম্ব আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে। যখন clipOrientation "vertical" হয়, তখন কোনও ক্লিপিং ঘটে না কারণ অঙ্কনযোগ্য উল্লম্ব স্থানটি পূরণ করে (যদি না অঙ্কনযোগ্য স্তরটি 0 হয়, যে ক্ষেত্রে এটি দৃশ্যমান হয় না)।
center_horizontal বস্তুটিকে তার পাত্রের অনুভূমিক কেন্দ্রে রাখুন, এর আকার পরিবর্তন করবেন না। ক্লিপিং একই আচরণ করে যখন মাধ্যাকর্ষণ "center" হয়।
fill_horizontal প্রয়োজনে বস্তুর অনুভূমিক আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে। যখন clipOrientation "horizontal" হয়, তখন কোনও ক্লিপিং ঘটে না কারণ অঙ্কনযোগ্য অনুভূমিক স্থানটি পূরণ করে (যদি না অঙ্কনযোগ্য স্তরটি 0 হয়, যে ক্ষেত্রে এটি দৃশ্যমান হয় না)।
center বস্তুটিকে তার পাত্রের মাঝখানে উল্লম্ব এবং অনুভূমিক উভয় অক্ষে রাখুন, এর আকার পরিবর্তন করবেন না। যখন clipOrientation "horizontal" হয়, তখন ক্লিপিং বাম এবং ডানে ঘটে। যখন clipOrientation "vertical" হয়, তখন উপরে এবং নীচে ক্লিপিং ঘটে।
fill প্রয়োজনে বস্তুর অনুভূমিক এবং উল্লম্ব আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে। কোন ক্লিপিং ঘটে না কারণ অঙ্কনযোগ্য অনুভূমিক এবং উল্লম্ব স্থান পূরণ করে (যদি না অঙ্কনযোগ্য স্তরটি 0 হয়, যে ক্ষেত্রে এটি দৃশ্যমান হয় না)।
clip_vertical অতিরিক্ত বিকল্প যা সন্তানের উপরের এবং/অথবা নীচের প্রান্তগুলিকে তার পাত্রের সীমানায় ক্লিপ করার জন্য সেট করা যেতে পারে। ক্লিপটি উল্লম্ব মহাকর্ষের উপর ভিত্তি করে তৈরি করা হয়েছে: একটি উপরের মাধ্যাকর্ষণ নীচের প্রান্তটি ক্লিপ করে, একটি নীচের মাধ্যাকর্ষণ উপরের প্রান্তটি ক্লিপ করে এবং উভয় প্রান্তকে ক্লিপ করে না।
clip_horizontal অতিরিক্ত বিকল্প যা সন্তানের বাম এবং/অথবা ডান প্রান্তগুলি তার পাত্রের সীমানায় ক্লিপ করার জন্য সেট করা যেতে পারে। ক্লিপটি অনুভূমিক মাধ্যাকর্ষণ ভিত্তিক: একটি বাম মাধ্যাকর্ষণ ডান প্রান্তটি ক্লিপ করে, একটি ডান মাধ্যাকর্ষণ বাম প্রান্তটি ক্লিপ করে এবং উভয় প্রান্তকে ক্লিপ করে না।
উদাহরণ:
XML ফাইল res/drawable/clip.xml এ সংরক্ষিত হয়েছে :
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/android"
    android:clipOrientation="horizontal"
    android:gravity="left" />

নিচের লেআউট XML একটি ভিউতে আঁকা যোগ্য ক্লিপ প্রয়োগ করে:

<ImageView
    android:id="@+id/image"
    android:src="@drawable/clip"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

নিম্নলিখিত কোডটি আঁকার যোগ্য হয়ে ওঠে এবং ধীরে ধীরে চিত্রটি প্রকাশ করতে ক্লিপিংয়ের পরিমাণ বাড়ায়:

কোটলিন

val imageview: ImageView = findViewById(R.id.image)
val drawable: Drawable = imageview.background
if (drawable is ClipDrawable) {
    drawable.level = drawable.level + 1000
}

জাভা

ImageView imageview = (ImageView) findViewById(R.id.image);
Drawable drawable = imageview.getBackground();
if (drawable instanceof ClipDrawable) {
    ((ClipDrawable)drawable).setLevel(drawable.getLevel() + 1000);
}

স্তর বৃদ্ধি ক্লিপিংয়ের পরিমাণ হ্রাস করে এবং ধীরে ধীরে চিত্রটি প্রকাশ করে। এখানে এটি 7000 এর স্তরে রয়েছে:

দ্রষ্টব্য: ডিফল্ট স্তর হল 0, যা সম্পূর্ণরূপে ক্লিপ করা হয়েছে তাই চিত্রটি দৃশ্যমান নয়৷ যখন স্তরটি 10,000 হয়, তখন ছবিটি ক্লিপ করা হয় না এবং সম্পূর্ণরূপে দৃশ্যমান হয়৷

আরো দেখুন:

স্কেল অঙ্কনযোগ্য

XML-এ সংজ্ঞায়িত একটি অঙ্কনযোগ্য যা তার বর্তমান স্তরের উপর ভিত্তি করে অন্য অঙ্কনযোগ্য আকার পরিবর্তন করে।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি ScaleDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/drawable_resource"
    android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                          "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                          "center" | "fill" | "clip_vertical" | "clip_horizontal"]
    android:scaleHeight="percentage"
    android:scaleWidth="percentage" />
উপাদান:
<scale>
প্রয়োজন। অঙ্কনযোগ্য স্কেল সংজ্ঞায়িত করে। এই মূল উপাদান হতে হবে.

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
android:drawable
অঙ্কনযোগ্য সম্পদপ্রয়োজন একটি অঙ্কনযোগ্য সম্পদের উল্লেখ।
android:scaleGravity
কীওয়ার্ড । স্কেলিং করার পরে মাধ্যাকর্ষণ অবস্থান নির্দিষ্ট করে।

নিম্নলিখিত ধ্রুবক মানগুলির মধ্যে এক বা একাধিক হতে হবে, | দ্বারা পৃথক করা হয়েছে৷ :

মান বর্ণনা
top বস্তুটিকে তার পাত্রের শীর্ষে রাখুন, এর আকার পরিবর্তন করবেন না।
bottom বস্তুটিকে তার পাত্রের নীচে রাখুন, এর আকার পরিবর্তন করবেন না।
left বস্তুটিকে তার পাত্রের বাম প্রান্তে রাখুন, এর আকার পরিবর্তন করবেন না। এটি ডিফল্ট।
right বস্তুটিকে তার পাত্রের ডান প্রান্তে রাখুন, এর আকার পরিবর্তন করবেন না।
center_vertical বস্তুটিকে তার পাত্রের উল্লম্ব কেন্দ্রে রাখুন, এর আকার পরিবর্তন না করে।
fill_vertical প্রয়োজনে বস্তুর উল্লম্ব আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে।
center_horizontal বস্তুটিকে তার পাত্রের অনুভূমিক কেন্দ্রে রাখুন, এর আকার পরিবর্তন করবেন না।
fill_horizontal প্রয়োজনে বস্তুর অনুভূমিক আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে।
center বস্তুটিকে তার পাত্রের মাঝখানে উল্লম্ব এবং অনুভূমিক উভয় অক্ষে রাখুন, এর আকার পরিবর্তন করবেন না।
fill প্রয়োজনে বস্তুর অনুভূমিক এবং উল্লম্ব আকার বাড়ান যাতে এটি সম্পূর্ণরূপে তার ধারকটি পূরণ করে।
clip_vertical অতিরিক্ত বিকল্প যা সন্তানের উপরের এবং/অথবা নীচের প্রান্তগুলিকে তার পাত্রের সীমানায় ক্লিপ করার জন্য সেট করা যেতে পারে। ক্লিপটি উল্লম্ব মহাকর্ষের উপর ভিত্তি করে তৈরি করা হয়েছে: একটি উপরের মাধ্যাকর্ষণ নীচের প্রান্তটি ক্লিপ করে, একটি নীচের মাধ্যাকর্ষণ উপরের প্রান্তটি ক্লিপ করে এবং উভয় প্রান্তকে ক্লিপ করে না।
clip_horizontal অতিরিক্ত বিকল্প যা সন্তানের বাম এবং/অথবা ডান প্রান্তগুলি তার পাত্রের সীমানায় ক্লিপ করার জন্য সেট করা যেতে পারে। ক্লিপটি অনুভূমিক মাধ্যাকর্ষণ ভিত্তিক: একটি বাম মাধ্যাকর্ষণ ডান প্রান্তটি ক্লিপ করে, একটি ডান মাধ্যাকর্ষণ বাম প্রান্তটি ক্লিপ করে এবং উভয় প্রান্তকে ক্লিপ করে না।
android:scaleHeight
শতাংশ । স্কেল উচ্চতা, অঙ্কনযোগ্য সীমার শতাংশ হিসাবে প্রকাশ করা হয়। মানটির বিন্যাস হল XX%, যেমন 100% বা 12.5%৷
android:scaleWidth
শতাংশ । স্কেল প্রস্থ, অঙ্কনযোগ্য সীমার শতাংশ হিসাবে প্রকাশ করা হয়। মানটির বিন্যাস হল XX%, যেমন 100% বা 12.5%৷
উদাহরণ:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/logo"
    android:scaleGravity="center_vertical|center_horizontal"
    android:scaleHeight="80%"
    android:scaleWidth="80%" />
আরো দেখুন:

আকৃতি অঙ্কনযোগ্য

এটি XML-এ সংজ্ঞায়িত একটি জেনেরিক আকৃতি।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম হল রিসোর্স আইডি
সংকলিত সম্পদ ডেটা টাইপ:
একটি GradientDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable/ filename
বাক্য গঠন:
<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >
    <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
    <gradient
        android:angle="integer"
        android:centerX="float"
        android:centerY="float"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size
        android:width="integer"
        android:height="integer" />
    <solid
        android:color="color" />
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>
উপাদান:
<shape>
প্রয়োজন। আকৃতি অঙ্কনযোগ্য. এই মূল উপাদান হতে হবে.

গুণাবলী:

xmlns:android
স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা অবশ্যই "http://schemas.android.com/apk/res/android" হতে হবে।
android:shape
কীওয়ার্ড । আকৃতির ধরন নির্ধারণ করে। বৈধ মান হল:
মান বর্ণনা
"rectangle" একটি আয়তক্ষেত্র যা ধারণকৃত ভিউ পূরণ করে। এটি ডিফল্ট আকার।
"oval" একটি ডিম্বাকৃতি আকৃতি যা ধারণকৃত দৃশ্যের মাত্রার সাথে খাপ খায়।
"line" একটি অনুভূমিক রেখা যা ধারণকৃত দৃশ্যের প্রস্থকে বিস্তৃত করে। লাইনের প্রস্থ নির্ধারণ করতে এই আকৃতির <stroke> উপাদান প্রয়োজন।
"ring" একটি রিং আকৃতি।

নিম্নলিখিত বৈশিষ্ট্যগুলি শুধুমাত্র তখনই ব্যবহৃত হয় যখন android:shape="ring" :

android:innerRadius
মাত্রা । একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে রিং এর ভিতরের অংশের ব্যাসার্ধ (মাঝখানে গর্ত)।
android:innerRadiusRatio
ভাসা । রিং এর ভিতরের অংশের ব্যাসার্ধ, রিং এর প্রস্থের অনুপাত হিসাবে প্রকাশ করা হয়। উদাহরণস্বরূপ, যদি android:innerRadiusRatio="5" , তাহলে অভ্যন্তরীণ ব্যাসার্ধটি রিংটির প্রস্থকে 5 দ্বারা ভাগ করলে সমান হয়৷ এই মানটি android:innerRadius দ্বারা ওভাররাইড করা হয়েছে৷ ডিফল্ট মান হল 9।
android:thickness
মাত্রা । রিং এর বেধ, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:thicknessRatio
ভাসা । রিং এর বেধ রিং এর প্রস্থের অনুপাত হিসাবে প্রকাশ করা হয়। উদাহরণস্বরূপ, যদি android:thicknessRatio="2" , তাহলে বেধটি রিংটির প্রস্থকে 2 দ্বারা ভাগ করলে সমান হয়। এই মানটি android:innerRadius দ্বারা ওভাররাইড করা হয়েছে। ডিফল্ট মান হল 3।
android:useLevel
বুলিয়ান এটি একটি LevelListDrawable হিসাবে ব্যবহার করা হলে সত্য। এটি সাধারণত মিথ্যা, অন্যথায় আপনার আকৃতি প্রদর্শিত নাও হতে পারে।
<corners>
আকৃতির জন্য বৃত্তাকার কোণ তৈরি করে। আকৃতিটি একটি আয়তক্ষেত্র হলেই প্রযোজ্য।

গুণাবলী:

android:radius
মাত্রা । সমস্ত কোণের ব্যাসার্ধ, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে। নিম্নলিখিত গুণাবলী দ্বারা প্রতিটি কোণার জন্য এটি ওভাররাইড করা হয়েছে।
android:topLeftRadius
মাত্রা । একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে উপরের-বাম কোণের ব্যাসার্ধ।
android:topRightRadius
মাত্রা । একটি মাত্রা মান বা মাত্রা সংস্থান হিসাবে উপরের-ডান কোণার ব্যাসার্ধ।
android:bottomLeftRadius
মাত্রা । একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে নীচে-বাম কোণের ব্যাসার্ধ।
android:bottomRightRadius
মাত্রা । একটি মাত্রা মান বা মাত্রা সংস্থান হিসাবে নীচে-ডান কোণের ব্যাসার্ধ।

দ্রষ্টব্য: প্রতিটি কোণে প্রাথমিকভাবে 1-এর বেশি একটি কোণার ব্যাসার্ধ প্রদান করতে হবে, অন্যথায় কোন কোণ বৃত্তাকার হবে না। আপনি যদি চান যে নির্দিষ্ট কোণগুলি বৃত্তাকার না হোক, একটি সমাধান হল android:radius ব্যবহার করে ডিফল্ট কোণার ব্যাসার্ধ 1-এর বেশি সেট করা এবং তারপরে আপনি যে মানগুলি চান তা দিয়ে প্রতিটি কোণে ওভাররাইড করুন, যেখানে আপনি 0 ("0dp") প্রদান করেন। গোলাকার কোণ চাই না।

<gradient>
আকৃতির জন্য একটি গ্রেডিয়েন্ট রঙ নির্দিষ্ট করে।

গুণাবলী:

android:angle
পূর্ণসংখ্যা । গ্রেডিয়েন্টের জন্য ডিগ্রীতে কোণ। 0 বাম থেকে ডানে, 90 নীচে থেকে উপরে। এটি অবশ্যই 45 এর একাধিক হতে হবে। ডিফল্ট হল 0।
android:centerX
ভাসা । গ্রেডিয়েন্টের কেন্দ্রের আপেক্ষিক X- অবস্থান (0 - 1.0)।
android:centerY
ভাসা । গ্রেডিয়েন্টের কেন্দ্রের আপেক্ষিক Y- অবস্থান (0 - 1.0)।
android:centerColor
রঙ ঐচ্ছিক রঙ যা শুরু এবং শেষ রঙের মধ্যে আসে, হেক্সাডেসিমেল মান বা রঙের সংস্থান হিসাবে।
android:endColor
রঙ শেষের রঙ, হেক্সাডেসিমেল মান বা রঙের সংস্থান হিসাবে।
android:gradientRadius
ভাসা । গ্রেডিয়েন্টের জন্য ব্যাসার্ধ। শুধুমাত্র প্রয়োগ করা হয় যখন android:type="radial"
android:startColor
রঙ হেক্সাডেসিমেল মান বা রঙের সংস্থান হিসাবে শুরুর রঙ।
android:type
কীওয়ার্ড । প্রযোজ্য গ্রেডিয়েন্ট প্যাটার্নের ধরন। বৈধ মান হল:
মান বর্ণনা
"linear" একটি রৈখিক গ্রেডিয়েন্ট। এটি ডিফল্ট।
"radial" একটি রেডিয়াল গ্রেডিয়েন্ট। শুরুর রঙ হল কেন্দ্রের রঙ।
"sweep" একটি সুইপিং লাইন গ্রেডিয়েন্ট।
android:useLevel
বুলিয়ান এটি একটি LevelListDrawable হিসাবে ব্যবহার করা হলে সত্য।
<padding>
সম্বলিত ভিউ এলিমেন্টে প্রয়োগ করার জন্য প্যাডিং। এটি দেখার বিষয়বস্তুর অবস্থান প্যাড করে, আকৃতি নয়।

গুণাবলী:

android:left
মাত্রা । বাম প্যাডিং, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:top
মাত্রা । শীর্ষ প্যাডিং, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:right
মাত্রা । ডান প্যাডিং, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:bottom
মাত্রা । নীচের প্যাডিং, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
<size>
আকৃতির আকার।

গুণাবলী:

android:height
মাত্রা । আকারের উচ্চতা, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।
android:width
মাত্রা । আকারের প্রস্থ, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে।

দ্রষ্টব্য: ডিফল্টরূপে, আকৃতিটি এখানে সংজ্ঞায়িত মাত্রার সমানুপাতিক কন্টেইনার ভিউয়ের আকারে স্কেল করে। যখন আপনি একটি ImageView এ আকৃতি ব্যবহার করেন, তখন আপনিandroid:scaleType কে "center" এ সেট করে স্কেলিং সীমাবদ্ধ করতে পারেন।

<solid>
আকৃতি পূরণ করার জন্য একটি কঠিন রঙ।

গুণাবলী:

android:color
রঙ হেক্সাডেসিমেল মান বা রঙের সংস্থান হিসাবে আকৃতিতে যে রঙটি প্রয়োগ করতে হবে।
<stroke>
আকৃতির জন্য একটি স্ট্রোক লাইন।

গুণাবলী:

android:width
মাত্রা । একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে লাইনের পুরুত্ব।
android:color
রঙ হেক্সাডেসিমেল মান বা রঙের সংস্থান হিসাবে লাইনের রঙ।
android:dashGap
মাত্রা । একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে লাইন ড্যাশের মধ্যে দূরত্ব। শুধুমাত্র বৈধ যদি android:dashWidth সেট করা থাকে।
android:dashWidth
মাত্রা । প্রতিটি ড্যাশ লাইনের আকার, একটি মাত্রা মান বা মাত্রা সম্পদ হিসাবে। শুধুমাত্র বৈধ যদি android:dashGap সেট করা থাকে।
উদাহরণ:
XML ফাইল res/drawable/gradient_box.xml এ সংরক্ষিত হয়েছে :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

এই লেআউট XML একটি দৃশ্যে অঙ্কনযোগ্য আকৃতি প্রয়োগ করে:

<TextView
    android:background="@drawable/gradient_box"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

এই অ্যাপ্লিকেশন কোডটি আকৃতি অঙ্কনযোগ্য পায় এবং এটি একটি দৃশ্যে প্রয়োগ করে:

কোটলিন

val shape: Drawable? = getDrawable(resources, R.drawable.gradient_box, getTheme())

val tv: TextView = findViewById(R.id.textview)
tv.background = shape

জাভা

Resources res = getResources();
Drawable shape = ResourcesCompat.getDrawable(res, R.drawable.gradient_box, getTheme());

TextView tv = (TextView)findViewById(R.id.textview);
tv.setBackground(shape);
আরো দেখুন: