我的应用程序中有一个画廊,但是当我加载图片时,我的分辨率与下图相同。这些图像的分辨率为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"
/>
答案 0 :(得分:1)
这可能是由于照片布局的高度和宽度增加造成的,或者布局的宽度和高度值不变,无法调整大小尝试将布局宽度和高度设置为wrap_content,请粘贴代码,因为没有你的代码,任何人都无法帮助你。
编辑:
将您的布局粘贴到xml中。
附加:
如果您想要制作包含大量照片的图库,请不要为每个元素创建新的ImageView
if(convertView == null)
convertView = new ImageView();
这是为了不在内存中保留太多元素并使用其他现在不可见的元素。
其他方式如果你有很多图像,你的应用程序将无法顺利运行。
编辑:
你应该在DisplayImage方法
中这样做imageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 300, 300, false));
它应该有效