Я пытаюсь реализовать Picasso, чтобы помочь загружать изображения в GridView
. В настоящее время приведенный ниже код работает без проблем, но элемент GridView
просто пуст. Я знаю, что конкретный ImageView
на самом деле там, потому что, если я его выберу и удерживаю, активируется selected_state
drawable, как вы можете видеть в скриншоте this.Использование Picasso в GridView: ImageView есть, но без изображения
Не могли бы вы помочь мне найти проблему? Благодаря!
GalleryFragment.java
:
//in onCreateView()
v = inflater.inflate(R.layout.fragment_gallery, parent, false);
GridView gridView = (GridView) v.findViewById(R.id.fragmentGalleryGridview);
gridView.setAdapter(new GalleryAdapter(getActivity()));
gridView.setOnScrollListener(new GalleryScrollListener(getActivity()));
return v;
GalleryAdapter.java
простирается BaseAdapter
:
public GalleryAdapter(Context mContext)
{
this.mContext = mContext;
inflater = LayoutInflater.from(mContext);
//get ArrayList<String> mPaths from SQLite database
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
SquareImageView view = (SquareImageView) convertView;
if (view == null)
{
view = new SquareImageView(mContext);
view.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
Picasso.with(mContext)
.load(mPaths.get(position))
.fit()
.into(view);
return view;
}
SquareImageView.java
:
public class SquareImageView extends ImageView
{
//three constructors
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth());
}
}
fragment_gallery.xml
:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#eeeeee"
android:layout_marginTop="?android:attr/actionBarSize">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentGalleryGridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:columnWidth="100dp"
android:numColumns="auto_fit"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:drawSelectorOnTop="true"
android:stretchMode="columnWidth"/>
</FrameLayout>
проверить эту ссылку http: // www.101apps.co.za/articles/gridview-tutorial-using-the-picasso-library.html – Pavya
@ user3676184 Я действительно уже прочитал эту статью, когда узнал, как реализовать Picasso, и мои методы очень похожи. Вы видите что-то другое, что может вызвать мою ошибку? – pez
Я пробовал реализацию в ссылке user3676184, и моя реализация выше взята из официального Picasso github [здесь] (https://github.com/square/picasso/blob/master/picasso-sample/src/main/java /com/example/picasso/SampleGridViewAdapter.java), но оба они приводят к одной и той же проблеме. – pez