دو نوع رایج از فرمتهای تصویر، تصاویر رستری و برداری هستند.
یک قالب گرافیکی رستری شامل پیکسلها است: مربعهای کوچک منفردی که حاوی یک رنگ (متشکل از مقادیر قرمز، سبز، آبی و آلفا) هستند. با قرار دادن تعداد زیادی پیکسل در کنار هم، میتوان تصویری بسیار دقیق مانند یک عکس تشکیل داد. یک تصویر رستری وضوح ثابتی (تعداد ثابتی پیکسل) دارد. این بدان معناست که وقتی اندازه تصویر را افزایش میدهید، جزئیات آن از بین میرود و پیکسلی شدن تصویر ممکن است رخ دهد. نمونههایی از قالبهای گرافیکی رستری عبارتند از JPEG، PNG و WEBP.

از سوی دیگر، تصاویر برداری، نمایشهای ریاضی مقیاسپذیر از یک عنصر بصری روی صفحه هستند. یک بردار مجموعهای از دستورات است که نحوه ترسیم تصویر روی صفحه را توصیف میکند - برای مثال، یک خط، نقطه یا پر کردن. هنگام مقیاسبندی یک بردار روی صفحه، کیفیت آن از دست نمیرود، زیرا فرمول ریاضی رابطه بین دستورات مختلف را حفظ میکند. نمونههای خوب ImageVector
نمادهای مواد هستند، زیرا همه آنها را میتوان با فرمولهای ریاضی تعریف کرد.

ImageBitmap
در Compose، یک تصویر رستری (که اغلب به آن Bitmap
گفته میشود) میتواند در یک نمونه ImageBitmap
بارگذاری شود و BitmapPainter
مسئول ترسیم بیتمپ روی صفحه نمایش است.
برای موارد استفادهی اولیه، میتوان از painterResource()
برای ایجاد یک ImageBitmap
استفاده کرد و یک شیء Painter
(در این مورد - BitmapPainter
) را برمیگرداند:
Image( painter = painterResource(id = R.drawable.dog), contentDescription = stringResource(id = R.string.dog_content_description) )
اگر به سفارشیسازی بیشتری نیاز دارید (مثلاً پیادهسازی یک نقاش سفارشی ) و به دسترسی به خود ImageBitmap
نیاز دارید، میتوانید آن را به روش زیر بارگذاری کنید:
val imageBitmap = ImageBitmap.imageResource(R.drawable.dog)
ImageVector
یک VectorPainter
مسئول ترسیم یک ImageVector
روی صفحه نمایش است. ImageVector
از زیرمجموعهای از دستورات گرافیک برداری مقیاسپذیر (SVG) پشتیبانی میکند. همه تصاویر را نمیتوان به صورت برداری نمایش داد (برای مثال، عکسهایی که با دوربین خود میگیرید را نمیتوان به برداری تبدیل کرد).
شما میتوانید یک ImageVector
سفارشی ایجاد کنید، یا با وارد کردن یک فایل XML بردار موجود (که با استفاده از ابزار import به اندروید استودیو وارد شده است) یا با پیادهسازی کلاس و صدور دستورات مسیر به صورت دستی.
برای موارد استفاده اولیه، تابع painterResource()
برای ImageVectors
به همان روشی که برای کلاس ImageBitmap
عمل میکند، عمل میکند و یک VectorPainter
را به عنوان نتیجه برمیگرداند. painterResource()
بارگذاری VectorDrawables
و BitmapDrawables
را به ترتیب در VectorPainter
و BitmapPainter
مدیریت میکند. برای بارگذاری یک VectorDrawable
در یک تصویر، از دستور زیر استفاده کنید:
Image( painter = painterResource(id = R.drawable.baseline_shopping_cart_24), contentDescription = stringResource(id = R.string.shopping_cart_content_desc) )
اگر به سفارشیسازی بیشتری نیاز دارید و میخواهید به خود ImageVector
دسترسی داشته باشید، میتوانید آن را به روش زیر بارگذاری کنید:
val imageVector = ImageVector.vectorResource(id = R.drawable.baseline_shopping_cart_24)
برای شما توصیه میشود
- توجه: متن لینک زمانی نمایش داده میشود که جاوا اسکریپت غیرفعال باشد.
- نقاش سفارشی {:#custom-painter}
- منابع در Compose
- در حال بارگذاری تصاویر {:#loading-images}