我有一个recyclerview和一个imageview,我想在滚动时更改imageview的图片,但我不知道如何获取当前位置并通过它从列表中获取我的图像,然后使用Picasso加载到imageview!
以下是我的代码:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main_background"
android:background="#80000000"
android:scaleType="centerCrop"
/>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_centerInParent="true"
android:layout_marginBottom="30dp"
android:layout_marginTop="30dp"/>
我的适配器:
public class Place_Adapter extends RecyclerView.Adapter<Place_View_Holder> {
private List<Place> objects;
private Activity context;
public Place_Adapter(List<Place> objects,Activity context){
this.context=context;
this.objects=objects;
}
@Override
public Place_View_Holder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.place_item, parent, false);
Place_View_Holder place_view_holder=new Place_View_Holder(v);
return place_view_holder;
}
@Override
public void onBindViewHolder(Place_View_Holder holder, int position) {
Picasso.with(context)
.load(objects.get(position).getItem_Image())
.placeholder(R.mipmap.image)
.error(R.mipmap.image)
.into(holder.image);
holder.place_name.setText(objects.get(position).getPName());
holder.place_in_map.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
context.startActivity(new Intent(context, MapsActivity.class));
}
});
}
@Override
public int getItemCount() {
return objects.size();
}
}
这是我的活动(Activity)
。mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
////here i want to change imageview image
}
}
});