একটি অঙ্কনযোগ্য সংস্থান হল একটি গ্রাফিকের জন্য একটি সাধারণ ধারণা যা স্ক্রিনে আঁকা যেতে পারে এবং আপনি 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"] />
- উপাদান:
- উদাহরণ:
<?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"] />
- উপাদান:
- উদাহরণ:
<?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>
- উপাদান:
- উদাহরণ:
- 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>
- উপাদান:
- উদাহরণ:
- 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>
- উপাদান:
- উদাহরণ:
<?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>
- উপাদান:
- উদাহরণ:
- 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" />
- উপাদান:
- উদাহরণ:
<?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"] />
- উপাদান:
- উদাহরণ:
- 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" />
- উপাদান:
- উদাহরণ:
<?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>
- উপাদান:
- উদাহরণ:
- 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); - এছাড়াও দেখুন: