来自imageView Android的错误分辨率

时间:2013-09-16 14:27:27

标签: android imageview resolution

我的应用程序中有一个画廊,但是当我加载图片时,我的分辨率与下图相同。这些图像的分辨率为300x300。即使提高分辨率,图像也会显示出相同的分辨率。

enter image description here

你能帮助我吗?

我的适配器

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"
/>

1 个答案:

答案 0 :(得分:1)

这可能是由于照片布局的高度和宽度增加造成的,或者布局的宽度和高度值不变,无法调整大小尝试将布局宽度和高度设置为wrap_content,请粘贴代码,因为没有你的代码,任何人都无法帮助你。

编辑:

将您的布局粘贴到xml中。

附加:

如果您想要制作包含大量照片的图库,请不要为每个元素创建新的ImageView

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

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

其他方式如果你有很多图像,你的应用程序将无法顺利运行。

编辑:

你应该在DisplayImage方法

中这样做
imageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 300, 300, false));

它应该有效