التعامل مع الصور النقطية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تجربة طريقة ComposeAllowed
Jetpack Compose هي مجموعة أدوات واجهة المستخدم التي ننصح بها لنظام التشغيل Android. تعرَّف على كيفية عرض الرسومات في Compose.
هناك عدد من الأسباب التي تجعل تحميل الصور النقطية في تطبيق Android أمرًا صعبًا:
- يمكن أن تستنفد الخرائط النقطية ميزانية ذاكرة التطبيق بسهولة. على سبيل المثال، تلتقط
كاميرا هاتف Pixel
صورًا يصل حجمها إلى 4048×3036 بكسل (12 ميغابكسل).
في حال كانت إعدادات الصورة النقطية المستخدَمة هي
ARGB_8888
،
هي الإعدادات التلقائية لنظام التشغيل Android 2.3 (المستوى 9 لواجهة برمجة التطبيقات) والإصدارات الأحدث، إنّ تحميل صورة واحدة في الذاكرة يستغرق حوالي 48 ميغابايت من الذاكرة (4048*3036*4 بايت). ومثل هذا الطلب الكبير على الذاكرة يمكن أن يستهلك على الفور جميع الذاكرة المتاحة للتطبيق.
- قد يؤدي تحميل الصور النقطية في سلسلة واجهة المستخدم إلى التأثير سلبًا في أداء تطبيقك، ما يؤدي إلى بطء الاستجابة أو ظهور رسائل خطأ ANR. وبالتالي، من المهم إدارة سلاسل المحادثات بشكل مناسب عند العمل على الصور النقطية.
- إذا كان تطبيقك يحمِّل عدة صور نقطية في الذاكرة، ستحتاج إلى إدارة
الذاكرة والتخزين المؤقت على القرص بمهارة. وإلا فقد يتأثر استجابة واجهة المستخدم للتطبيق وسلاستها.
في معظم الحالات، ننصحك باستخدام مكتبة Glide
لجلب الصور النقطية وفك ترميزها وعرضها في تطبيقك. يساعد "التمرير السريع" على إزالة معظم
التعقيدات في التعامل مع هذه الأمور
والمهام الأخرى المتعلقة بالعمل باستخدام الصور النقطية والصور الأخرى على Android.
للاطّلاع على معلومات حول استخدام ميزة Glide وتنزيلها، يُرجى الانتقال إلى المستودع Glide على GitHub.
يمكنك أيضًا اختيار العمل مباشرةً باستخدام واجهات برمجة التطبيقات ذات المستوى الأدنى المُضمَّنة في إطار عمل Android.
لمزيد من المعلومات حول كيفية إجراء ذلك، يمكنك الاطّلاع على
تحميل الصور النقطية الكبيرة بفعالية
والتخزين المؤقت للصور النقطية
وإدارة ذاكرة الصور النقطية.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Handling bitmaps\n\nTry the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to display graphics in Compose. \n[ImageBitmap →](/jetpack/compose/graphics/images/compare) \n\nThere are a number of reasons why loading bitmaps in your Android app is tricky:\n\n- Bitmaps can very easily exhaust an app's memory budget. For example, the camera on the [Pixel](https://www.android.com/phones/pixel/) phone takes photos of up to 4048x3036 pixels (12 megapixels). If the bitmap configuration used is [ARGB_8888](/reference/android/graphics/Bitmap.Config), the default for Android 2.3 (API level 9) and higher, loading a single photo into memory takes about 48MB of memory (4048\\*3036\\*4 bytes). Such a large memory demand can immediately use up all the memory available to the app.\n- Loading bitmaps on the UI thread can degrade your app's performance, causing slow responsiveness or even ANR messages. It is therefore important to manage threading appropriately when working with bitmaps.\n- If your app is loading multiple bitmaps into memory, you need to skillfully manage memory and disk caching. Otherwise, the responsiveness and fluidity of your app's UI may suffer.\n\n\nFor most cases, we recommend that you use the [Glide](https://github.com/bumptech/glide)\nlibrary to fetch, decode, and display bitmaps in your app. Glide abstracts out most of\nthe complexity in handling these and\nother tasks related to working with bitmaps and other images on Android.\nFor information about using and downloading Glide, visit the\n[Glide repository](https://github.com/bumptech/glide) on GitHub.\n\n\nYou can also opt to work directly with the lower-level APIs built into the Android framework.\nFor more information on doing so, refer to\n[Loading Large Bitmaps Efficiently](/topic/performance/graphics/load-bitmap),\n[Caching Bitmaps](/topic/performance/graphics/cache-bitmap), and\n[Managing Bitmap Memory](/topic/performance/graphics/manage-memory).\n\nMore resources\n--------------"]]