ইনলাইন জটিল XML সম্পদ

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

res/drawable/avd.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/vectordrawable" >
    <target
        android:name="rotationGroup"
        android:animation="@anim/rotation" />
</animated-vector>
res/drawable/vectordrawable.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="64dp"
    android:width="64dp"
    android:viewportHeight="600"
    android:viewportWidth="600" >
    <group
        android:name="rotationGroup"
        android:pivotX="300.0"
        android:pivotY="300.0"
        android:rotation="45.0" >
        <path
            android:fillColor="#000000"
            android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
    </group>
</vector>
res/anim/rotation.xml
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/android"
    android:duration="6000"
    android:propertyName="rotation"
    android:valueFrom="0"
    android:valueTo="360" />

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

AAPT এর ইনলাইন রিসোর্স ফরম্যাট ব্যবহার করে, আপনি একই XML ফাইলে তিনটি রিসোর্স সংজ্ঞায়িত করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে। একটি অ্যানিমেটেড ভেক্টর আঁকার জন্য, ফাইলটিকে res/drawable/ অধীনে রাখুন।

res/drawable/avd.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt" >

    <aapt:attr name="android:drawable" >
        <vector
            android:height="64dp"
            android:width="64dp"
            android:viewportHeight="600"
            android:viewportWidth="600" >
            <group
                android:name="rotationGroup"
                android:pivotX="300.0"
                android:pivotY="300.0"
                android:rotation="45.0" >
                <path
                    android:fillColor="#000000"
                    android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
            </group>
        </vector>
    </aapt:attr>

    <target android:name="rotationGroup">
        <aapt:attr name="android:animation" >
            <objectAnimator
                android:duration="6000"
                android:propertyName="rotation"
                android:valueFrom="0"
                android:valueTo="360" />
        </aapt:attr>
    </target>
</animated-vector>

XML ট্যাগ <aapt:attr > AAPT কে ট্যাগের সন্তানকে একটি সম্পদ হিসাবে বিবেচনা করতে এবং এটিকে তার নিজস্ব সম্পদ ফাইলে বের করতে বলে। অ্যাট্রিবিউট নামের মানটি প্যারেন্ট ট্যাগের মধ্যে ইনলাইন রিসোর্সটি কোথায় ব্যবহার করতে হবে তা নির্দিষ্ট করে।

AAPT সমস্ত ইনলাইন সংস্থানগুলির জন্য সংস্থান ফাইল এবং নাম তৈরি করে। এই ইনলাইন বিন্যাস ব্যবহার করে নির্মিত অ্যাপ্লিকেশনগুলি Android এর সমস্ত সংস্করণের সাথে সামঞ্জস্যপূর্ণ।