في Android ، نظرًا لتنوع الهواتف المحمولة ذات البكسلات المختلفة ، لصورة ما ، ستكون هناك اختلافات في عرض الهواتف المحمولة المختلفة بسبب البكسلات المختلفة.
هناك شرط من ملء الشاشة بأكملها بعرض صورة وعرضها.
ما نفعله غالبًا قد يكون معالجة الصور بالطريقتين التاليتين.
حدد السمة layout_parent = "match_parent" و layout_parent = "wrap_content" من خلال <ICALEVIEW> ، واستخدم سمة scaletype من <ICTOMVIEW> للتوسع.
- scaletype = "fitxy": عند ضبطها على هذه الخاصية ، فإن ذلك سيؤدي إلى امتداد الصورة أفقياً ، مما يتسبب في تشوه الصورة ، وإذا كان هناك خط على الصورة ، فسيكون هذا أمرًا سيئًا.
- ScaleType = "CenterCrop": يجب أن يكون جيدًا في نفس النسبة ، لكنه محرج للغاية ، لا يزال لا يعمل. عند معالجة الصورة ، سيتم الحصول على حجم الصورة أولاً ، ثم يتم تحديد عرض وارتفاع الصورة قبل التحجيم. وبهذه الطريقة ، بعد تحديد نطاق الصورة ، يتم توسيع نطاق النقطة المركزية للصورة بالتساوي حتى يملأ العرض الشاشة بالكامل. هذا أمر محرج للغاية ، وسيتم قطع الأجزاء العلوية والسفلية من الصورة ، لذلك لا يتم عرض الصورة بالكامل ، ولا يزال ما نريد.
نهجي هو الحصول على الصورة بعد التحجيم في الكود ، ثم إضافة الصورة عن طريق تعيين Backgroud ، الذي يحل المشكلة. ثم الرمز أعلاه:
// احصل على دقة الصورة ، واحصل على عرض العرض dmetrics dm = new DisplayMetrics () ؛ getWindowManager (). getDefaultDisplay (). getMetrics (DM) ؛ int mscreenwidth = dm.WidthPixels ؛ // الحصول على عرض دقة الشاشة int mscreenheight = dm.heightpixels ؛ // قم بتحميل صورة الصورة النقطية = bitmapfactory.decoderesource (getResources () ، r.drawable.bank_help) ؛ int bitmapwidth = bitmap.getWidth () ؛ int bitmapheight = bitmap.getheight () ؛ // احصل على نسبة عرض الصورة Float num = mscreenwidth /(float) bitmapwidth ؛ مصفوفة المصفوفة = مصفوفة جديدة () ؛ matrix.postscale (num ، num) ؛ // قم بإنشاء كائن BITMAP المقوس RESIZEBITMAP = bitmap.createBitMap (صورة نقطية ، 0 ، 0 ، BITMAPWIDTH ، صورة نقطية ، مصفوفة ، صواب) ؛
يتم تقسيم الرمز أعلاه إلى الخطوات التالية
1. الحصول على دقة الشاشة.
2. الحصول على الصورة وقياس عرض وارتفاع الصورة.
3. احصل على نسبة التكبير المقابلة من خلال عرض الشاشة/عرض الصورة
4. إنشاء كائن مصفوفة وحدد التحجيم. (PS: هذا الشيء لطيف للغاية ، ويستخدم الكائن أيضًا لتعديله بلون التدرج في المقدمة)
5. إنشاء الصورة من خلال طريقة bitmap.createBitMap (). (PS: يجب تمرير المعلمة الأخيرة بشكل صحيح. إذا تم تمرير False ، فلن يتم عرض الصورة التي تم تكبيرها بوضوح)
ما سبق هو مقدمة للعمليات المتعلقة بمعالجة صور Java ، وآمل أن تكون مفيدة لتعلم الجميع.