滑翔不起作用?这是错误:

时间:2016-11-11 09:51:16

标签: android android-layout android-glide

我正在开发一个应用程序,显示歌曲的所有专辑封面图像。 所以我使用滑动来加载和缓存图像并避免使用OutofMemoryError。

这是我在AlbumAdapter中的getView方法:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    RelativeLayout albumsLay = (RelativeLayout)songInf.inflate
            (R.layout.album_layout, parent, false);
    ImageView coverView = (ImageView)albumsLay.findViewById(R.id.song_cover);

    //get song using position
    Song currSong = songs.get(position);

    if (Drawable.createFromPath(currSong.getCover()) != null) {
        Drawable img = Drawable.createFromPath(currSong.getCover());
                    Glide.with(this).load(img).into(coverView);

    }

    albumsLay.setTag(position);
    return albumsLay;
}

这是我得到的错误:

Error:(77, 18) error: no suitable method found for with(AlbumAdapter)
method Glide.with(android.support.v4.app.Fragment) is not applicable
(actual argument AlbumAdapter cannot be converted to android.support.v4.app.Fragment by method invocation conversion)
method Glide.with(android.app.Fragment) is not applicable
(actual argument AlbumAdapter cannot be converted to android.app.Fragment by method invocation conversion)
method Glide.with(FragmentActivity) is not applicable
(actual argument AlbumAdapter cannot be converted to FragmentActivity by method invocation conversion)
method Glide.with(Activity) is not applicable
(actual argument AlbumAdapter cannot be converted to Activity by method invocation conversion)
method Glide.with(Context) is not applicable
(actual argument AlbumAdapter cannot be converted to Context by method invocation conversion)

2 个答案:

答案 0 :(得分:1)

您需要使用Glide

传递上下文
Glide.with(this) // will not work

将上下文从Activity/Fragment传递到AlbumAdapter

Context mContext;
public AlbumAdapter(Context context){
    mContext = context;
}

并将该上下文与Glide

一起使用
Glide.with(mContext)

如果您有Activity,那么您需要使用new AlbumAdapter(ActivityName.this),而对于Fragment则需要使用new AlbumAdapter(getActivity())

答案 1 :(得分:0)

对于glide的更新版本,

RequestManager manager = Glide.with(imageView);

manager.load(imageUrl).into(imageView);