ایجاد زیردایرکتوری‌های دلخواه برای ریسورس‌ها به کمک گردل

اگه برای اندروید برنامه‌نوشتید یا قصد یادگیری اون رو دارید حتما با این محدودیت روبرو شدید یا خواهید شد که شمارو مجبور میکنه تمامی تصاویر و وکتورها و layout و دیگر فایل‌های لازم خودتون رو درون دایکتوری ‍ res قرار بدید ، حالا اینکه به شما اجازه میده تا برای رزولوشن‌های مختلف دایرکتوری‌های جدا داشته باشید چندان فرقی نمی‌کنه چون باز هم فولدر‌های شما ممو از فایل‌های مختلفی هست که کمتر ارتباط معنایی باهم دارند، مثلا تصاویری که برای ایجاد بخش راهنمای نرم‌افزار دارید و کنار آیکون‌ها میتونید ببینید و خلاصه در یک برنامه نسبتا بزرگ دایرکتوری شما بیشتر از صد تا فایل خواهد داشت که مدیریت اونها سخت و خسته کننده است.
هرچند من دل خوشی از gradle ندارم ولی در این مورد گردل میتونه بکار بیاد و کمک کنه تا بتونید به فولدربندی دلخواه خودمون فایل‌ها رو کمی بهتر مدیریت بکنیم. این رو هم توجه کنید که گردل موقع کامپایل برنامه دوباره تمامی دایرکتوری‌هایی که ما ایجاد کردیم و مشخص کردیم رو باهم ادغام می‌کنه و درون فایل اجرایی برنامه همچنان بصورت یک دایکتوری ذخیره میشه.
نحوه کار خیلی ساده است، فایل build.gradle برنامه خودتون رو باز کنید و درون اسکوپ android کد زیر رو اضاف کنید. بعد اضافه کردن کد زیر میتونید به دایرکتوری ریسورس برنامه برید و دایکتوری‌ای به نام test ایجاد کنید. درون این دایرکتوری دقیقا مثل دایرکتوری اصلی res میتونید فولدر‌های drawable یا layout … خودتون رو ایجاد کنید و ریسورسهای خودتون رو توی اونها ایجاد کنید. موقع کامپایل برنامه گردل این دایرکتوری‌ها رو ادغام و بصورت یک دایرکتوری واحد درمیاره.

1
2
3
4
5
6
7
8
9
 sourceSets {
main {
res.srcDirs =
[
'src/main/res/test',
'src/main/res'
]
}
}

Resource sub-directory
برای استفاده از ریسورس‌ها هم مثل قبل عمل میشه و لازم به کار اضافه‌ای نیست، یعنی برای استفاده از تصویر birthday_alert.png میشه نوشت R.drawable.birthday_alert .