您好我使用Picasso在网格视图中加载图像,但第一张图片似乎很少见。下面是图像的屏幕截图。
另外,如果我点击一个可以刷新网格视图的按钮,一切都很完美
gridview.invalidateViews();
adapter = new CVC(getActivity(), colorImageArrayList, colorImageFileArrayList);
gridview.setAdapter(adapter);
在网格视图中获取图像的代码
class CVC extends ArrayAdapter<ImageView> {
private Context context;
private ArrayList<ImageView> colorImageArrayList;
private ArrayList<String> colorImageFileArrayList;
public CVC(Context c, ArrayList<ImageView> colorImageArrayList, ArrayList<String> colorImageFileArrayList) {
super(c, R.layout.colorcvc, colorImageArrayList);
this.context = c;
this.colorImageArrayList = colorImageArrayList;
this.colorImageFileArrayList = colorImageFileArrayList;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View rowView = inflater.inflate(R.layout.colorcvc, parent, false);
final ImageView viewImage = (ImageView) rowView.findViewById(R.id.cvc_image);
ImageView image = colorImageArrayList.get(position);
if (image == null) {
String imageFileURL = colorImageFileArrayList.get(position);
Picasso.with(context).load(imageFileURL).placeholder(null)
.error(R.mipmap.ic_launcher)
.into(viewImage, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
// replace image in index (position)
}
@Override
public void onError() {
}
}
};
} else
viewImage.setImageDrawable(image.getDrawable());
return rowView;
}
}
R.layout.colorcvc
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/cvc_image"
android:layout_width="100dp"
android:layout_height="85dp" />
<TextView
android:id="@+id/cvc_colorname"
android:layout_width="100dp"
android:layout_height="15dp"
android:gravity="center"/>
</LinearLayout>
答案 0 :(得分:0)
如果你想用全尺寸加载它,你可以在图像视图上使用 scaleType 。但正如我在评论中说的那样,你的身高是硬编码的,所以这会导致图像拉伸。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/cvc_image"
android:layout_width="match_parent"
android:layout_height="85dp" />
</LinearLayout>
加载
Picasso.with(this).load(url).placeholder(null)
.error(R.mipmap.ic_launcher)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
}
});
输出。
答案 1 :(得分:0)
试试这些
Picasso.with(context).load(imageFileURL).placeholder(null)
.error(R.mipmap.ic_launcher)
.fit().centerCrop()
.into(viewImage, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
// replace image in index (position)
}
@Override
public void onError() {
}
}
};
您也可以只使用fit()。但是centerCrop()用于避免拉伸图像。 您也可以使用像
这样的调整大小功能.resize(600,200) //pixel size dimensions