I need to show the users profile picture who all are joining in a specified event and it should be in horizontal circular images one after other and after 5 images. it shoul
Try this here is the working code for java
RecyclerViewActivity
public class RecyclerViewActivity extends AppCompatActivity {
private final Integer[] IMAGES = {R.drawable.nilesh, R.drawable.nilesh, R.drawable.nilesh, R.drawable.nilesh,
R.drawable.nilesh, R.drawable.nilesh, R.drawable.nilesh, R.drawable.nilesh};
private ArrayList arrayList = new ArrayList();
RecyclerView myRecyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler_view);
Collections.addAll(arrayList, IMAGES);
myRecyclerView=findViewById(R.id.myRecyclerView);
myRecyclerView.setLayoutManager(new LinearLayoutManager(this,
LinearLayoutManager.HORIZONTAL,false));
myRecyclerView.addItemDecoration(new OverlapDecoration());
myRecyclerView.setHasFixedSize(true);
myRecyclerView.setAdapter(new DataAdapter(this,arrayList));
}
public class OverlapDecoration extends RecyclerView.ItemDecoration {
private final static int vertOverlap = -40;
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
final int itemPosition = parent.getChildAdapterPosition(view);
outRect.set(0, 0, vertOverlap, 0);
}
}
}
activity_recycler_view
DataAdapter
public class DataAdapter extends RecyclerView.Adapter {
private Context context;
private ArrayList arrayList = new ArrayList();
public DataAdapter(Context context, ArrayList imagesArray) {
this.context = context;
arrayList = imagesArray;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View imageLayout = LayoutInflater.from(context).inflate(R.layout.aa, parent, false);
return new ViewHolder(imageLayout);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.imageView.setImageResource(arrayList.get(position));
if (position == 3) {
holder.relativeLayout.setVisibility(View.VISIBLE);
holder.tvCount.setText(String.valueOf(arrayList.size()-4));
}else {
holder.relativeLayout.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return 4;
}
public class ViewHolder extends RecyclerView.ViewHolder {
RelativeLayout relativeLayout;
TextView tvCount;
CircleImageView imageView;
public ViewHolder(View itemView) {
super(itemView);
relativeLayout = itemView.findViewById(R.id.relative);
tvCount = itemView.findViewById(R.id.tvCount);
imageView = itemView
.findViewById(R.id.profile_image);
}
}
}
layout.aa