تحسين الترحيل بين imageViews في Android؟
-
19-09-2019 - |
سؤال
للتطبيق الذي أعمل فيه حاليا، خلقت شيئا مثل ImageSwitcher
لصور متعددة (تخيل iPhone UIScrollView
مع تمكين الترحيل).
في البداية، أنا بجد مشفرة بعض ImageViews
وتحمل مواردها القابلة للشركة على الإبداع / التضخم، ولكن بعد بعض القرص (وما اعتقدت أنها كانت تحسينات)، قللت من المشاهدات اللازمة إلى 3، منها 2 ImageViews
تستخدم لعرض الصفحة الحالية والرسوم المتحركة بين الصفحة الحالية والجديدة.
مع هذا التغيير، بدأت في الاستخدام setImageResource
/setImageDrawable
للتحميل الديناميكي للصورة الجديدة في 2 ImageViews
قبل الانزلاق عبر الصفحات (أنا أستخدم ملفات PNG، الحجم لعرض HVGA).
لخيبة أملتي، أصبح الأداء أسوأ، إلى حد الشعور ببعض التأخر عند الانزلاق بشكل أسرع من خلال الصفحات. نظرة سريعة في TraceView
كشفت أن 17.4٪ من إجمالي الوقت أثناء استخدام التطبيق، أكثر من 5 مرات أكثر من الطريقة الثقيلة التالية، تم استهلاكها من BitmapFactory.nativeDecodeAsset
, ، دعا بواسطة إعدادي الديناميكي للمورد الرسمي.
أفكر في طرق التحايل على هذا، وأريد أن أفعل ذلك بأفضل طريقة ممكنة، لذلك أي اقتراحات مرحب بها.
المحلول
في أي تنسيق لديك الصور؟
يعمل Android بشكل أصذي مع صور RGB565، لذلك إذا استطعت تحويل صورك إلى هذا التنسيق، فستكون فك التشفير أسرع بكثير.