سؤال

أنا أستخدم أ ListFragment لعرض أ ListView من كسول محملة ImageView الكائنات باستخدام محمل الصور العالمي للاندرويد.تأتي البيانات الصحيحة من مصدر البيانات الخاص بي ولدي عنوان URL لصوري عالية الدقة إلى حد ما (عرضها حوالي 1000 بكسل، و150 كيلو بايت).أنا أستخدمها لملء كل صف يبلغ ارتفاعه 110dp بالكامل.

المشكلة التي أواجهها هي أن الصور يتم تحميلها بدقة سيئة للغاية:

enter image description here

المشكلة ليست في الصورة المصدر لأنها ذات جودة عالية بما فيه الكفاية:

http://www.puc.edu/__data/assets/image/0006/127581/IMG_5155.jpg

أقوم بتوسيط الصورة ثم قصها:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minHeight="110dp">

    <TextView
        android:id="@+id/galleryTitle"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:layout_marginLeft="95dp"
        android:layout_marginRight="5dp"
        android:gravity="center_vertical"
        android:hint="16dp"
        android:lineSpacingExtra="0dp"
        android:lines="3"
        android:text="TextView"
        android:textSize="16sp"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/galleryImageView"
        android:layout_width="fill_parent"
        android:layout_height="110dp"
        android:scaleType="centerCrop"
        android:src="@drawable/default_background" />

</RelativeLayout>

عرض الصورة في الصف:

public View getView(int position, View convertView, ViewGroup parent) {

        View itemView;
        TextView title;

        // Get the news item object
        PUCObjects.PUCPhotoGalleryItem item = items.get(position);

        // Inflater Service
        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        itemView = inflater.inflate(R.layout.photos_gallery_row, parent, false);
        title = (TextView) itemView.findViewById(R.id.galleryTitle);
        ImageView imageView = (ImageView) itemView.findViewById(R.id.galleryImageView);

        // Set the Image
        imageLoader.DisplayImage(item.imageUrlExtraLarge, imageView);

        // Set the text
        title.setText(item.title);

        return itemView;
    }

هل هناك أي أفكار لماذا يتم عرض مثل هذه الصور ذات الدقة الرديئة؟

هل كانت مفيدة؟

المحلول

يبدو أن الصور تم تصغير حجمها.بالنظر إلى تلك المكتبة، فإن الوظيفة الافتراضية هي قوة أخذ عينات من صورتين.أعتقد أن هذا هو مصدر مشكلتك.

على سبيل المثال:

DisplayImageOptions opts = new DisplayImageOptions.Builder().imageScaleType(ImageScaleType.NONE).build();

imageLoader.DisplayImage(item.imageUrlExtraLarge, imageView, opts);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top