سؤال

لقد قمت بتحديث بنيتي للبناء ضد 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 (بكسل مستقلة الكثافة) وسيلة لتوحيد العرض على قرارات متعددة. ستجد بعض النصائح هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top