0

我的应用程序中有一个图库,但是当我加载图片时,我的分辨率与下图相同。这些图像的分辨率为 300x300。即使增加图像的分辨率,我也会看到相同的分辨率..

在此处输入图像描述

你能帮助我吗?

我的适配器

public class ImageAdapter extends BaseAdapter {
       int mGalleryItemBackground;
        private Context mContext;
        private Activity activity;
        private ArrayList<String>  urls; 
        private ImageLoader imageLoader;
        private int largura;
        private int altura;

        public ImageAdapter(Activity acivity,Context c,ArrayList<String> urls,int largura, int altura) {
            this.activity = acivity;
            this.urls = urls;
            this.largura = largura;
            this.altura = altura;
            mContext = c;
            TypedArray a = mContext.obtainStyledAttributes(R.styleable.MapAttrs);
            mGalleryItemBackground = a.getResourceId(
                    R.styleable.HelloGallery_android_galleryItemBackground, 0);
            a.recycle();
            imageLoader=new ImageLoader(activity.getApplicationContext());
        }

        public int getCount() {
            return urls.size();
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            int largura = this.largura;
            int altura = this.altura/3;
            ImageView i = null;
            if(convertView == null)
                i = new ImageView(mContext);

            //i.setImageResource(mImageIds[position]);
            i.setDrawingCacheQuality(100);
            i.setScaleType(ImageView.ScaleType.FIT_XY);
            i.setBackgroundResource(mGalleryItemBackground);
            //i.setLayoutParams(new Gallery.LayoutParams(largura,altura));
            i.getLayoutParams().height = 300;
            i.getLayoutParams().width = 300;

            imageLoader.DisplayImage(urls.get(position), i);

            return i;
        }


    }

显示图像

public void DisplayImage(String url, ImageView imageView)
    {
        imageViews.put(imageView, url);
        Bitmap bitmap = BitmapFactory.decodeFile(url);


        if(bitmap!=null)
            imageView.setImageBitmap(bitmap);
        else
        {
            queuePhoto(url, imageView);
            imageView.setImageResource(stub_id);

        }
    }

布局

<Gallery
android:id="@+id/gallery"                           android:layout_width="match_parent"                         android:layout_height="wrap_content"                            android:paddingTop="5sp"
/>
4

1 回答 1

1

这可能是由于增加了您的照片所在的布局的高度和宽度,或者布局具有恒定的宽度和高度值并且无法调整大小尝试将布局宽度和高度设置为 wrap_content 并请粘贴您的代码,因为没有人可以无需您的代码即可帮助您。

编辑:

将布局粘贴到 xml 中。

额外的:

如果您想制作包含大量照片的画廊,请不要为每个元素创建新的 ImageView 这样做

if(convertView == null)
convertView = new ImageView();

这样做是为了不在内存中保留太多元素并使用其他现在不可见的元素。

否则,如果您将拥有大量图像,您的应用程序将无法顺利运行。

编辑:

你应该在 DisplayImage 方法中这样做

imageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 300, 300, false));

它应该可以工作

于 2013-09-16T14:36:32.837 回答