Android: كيفية إيقاف Android 1.6+ من تحجيم الصور
سؤال
لقد قمت بتحديث بنيتي للبناء ضد Android 1.6 ، والآن يتم تقليص نقرة الصورة النقطية الخاصة بي على شاشات عالية الكثافة. لا أريد هذا السلوك. أعطيت هذه اللقطة:
http://blog.tomgibara.com/post/190539066/android-unscaled-bitmaps
لكن الصور لا تزال تتوافق ، وهذا ما لم أقم بتعيينها على ارتفاع وعرض محدد. إذا استخدمت wrap_content
يتم تقليصها.
لديّ محمل صورة باستخدام محمل صورة نقطية غير متوسطة لإنشاء سحب مثل ذلك:
Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);
الذي قمت بتعيينه لاحقًا لـ ImageView مثل ذلك:
imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );
المحلول 3
لف صورة النقط Drawable
هل هذه مشكلة. ال Drawable
موازين Bitmap
. بدلا من استخدام أ Drawable
, ، تعيين Bitmap
إلى ImageView
باستخدام مباشرة imageView.setImageBitmap(Bitmap)
.
نصائح أخرى
من أجل عدم تحجيم صورة عند تحميلها من مورد (على سبيل المثال مع bitmapfactory.decoderesource) ، يجب عليك تحديد موقعها في RES/DRAWLE-NODPI بدلاً من المعتاد القابل للرسم ، القابل للرسمية ، وهكذا.
استخدام
new BitmapDrawable(this.getResources(), bmp);
بدلاً من
new BitmapDrawable(bmp);
يجب حل المشكلة.
يستخدم ImageView.ScaleType. ال CENTER
لا تشوهات مستمرة لا يوجد تحجيم ، لذلك أعتقد أن هذا ما تبحث عنه.
بالمناسبة ، هل تستخدم البكسل أو الانخفاضات كوحدات حجم؟ يعد استخدام DIPs (بكسل مستقلة الكثافة) وسيلة لتوحيد العرض على قرارات متعددة. ستجد بعض النصائح هنا.