I am getting data in jSON. Data contains images url. I am trying to display images in below layouts.
1Image
2Image
3Image 4Image 5Image 6Image 7image
8Image 9Image 10Image 11Image 12image
13image 14image 15image 16image 17image
.... .... ..... ...... .....
So First two image will be in vertically. Other 5 images in horizontal scroll view and so on. So i am using RecyclerView with vertical orientation. but i am not able to creating the logic so images will be display above format.
please anyone guide me.
update:-
//Horizontal images view.
public class MoviesAdapterHorizontal extends RecyclerView.Adapter<MoviesAdapterHorizontal.MyViewHolder> {
private List<String> moviesList;
// private ThumbnailListener thumbnailListener;
public class MyViewHolder extends RecyclerView.ViewHolder {
// YouTubeThumbnailView thumbnail;
ImageView imageView2;
public MyViewHolder(View view) {
super(view);
// thumbnail = (YouTubeThumbnailView) view.findViewById(R.id.thumbnail);
imageView2 = (ImageView) view.findViewById(R.id.imageView2);
}
}
public MoviesAdapterHorizontal(List<String> moviesList) {
this.moviesList = moviesList;
// thumbnailListener = new ThumbnailListener();
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.hotrow2, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
final String url = moviesList.get(position);
System.out.println("movie url = " + url);
final String m = url.substring(url.lastIndexOf('/') + 1);
System.out.println("url = "+m);
int w = BasicDeviceInfo.getWidth(getActivity());
// int h = BasicDeviceInfo.getHeight(getActivity());
LinearLayout.LayoutParams lParams =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
w/3);
AQuery aq = new AQuery(holder.imageView2);
aq.id(holder.imageView2).image("http://x.x.x.231/news-flicks/uploads/home/tulips_e84aa48cee1a2a25aef001cd74152663.jpg", true, true, 0,
R.drawable.no_thumbnail);
holder.imageView2.setLayoutParams(lParams);
// holder.thumbnail.setLayoutParams(lParams);
/* holder.thumbnail.setTag(m);
holder.thumbnail.initialize("AIzaSyDW-sxPUqy2rD6ZWs3vTNb0jKEKA21RjrY", thumbnailListener);
holder.thumbnail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), FullscreenDemoActivity.class);
intent.putExtra("url",m);
intent.putExtra("txt", "");
startActivity(intent);
}
});*/
}
@Override
public int getItemCount() {
return moviesList.size();
}
private final class ThumbnailListener implements
YouTubeThumbnailView.OnInitializedListener,
YouTubeThumbnailLoader.OnThumbnailLoadedListener {
@Override
public void onInitializationSuccess(
YouTubeThumbnailView view, YouTubeThumbnailLoader loader) {
loader.setOnThumbnailLoadedListener(this);
String videoId = (String) view.getTag();
loader.setVideo(videoId);
}
@Override
public void onInitializationFailure(
YouTubeThumbnailView view, YouTubeInitializationResult loader) {
view.setImageResource(R.drawable.no_thumbnail);
}
@Override
public void onThumbnailLoaded(YouTubeThumbnailView view, String videoId) {
}
@Override
public void onThumbnailError(YouTubeThumbnailView view, YouTubeThumbnailLoader.ErrorReason errorReason) {
view.setImageResource(R.drawable.no_thumbnail);
}
}
}
horizontal xml:-
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView2"
android:src="@drawable/no_thumbnail"/>
</LinearLayout>
i am calling it parent recycle view onBindViewHolder()
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
Videos movie = moviesList.get(position);
System.out.println("Image = " + movie.getImage());
int w = BasicDeviceInfo.getWidth(getActivity());
// int h = BasicDeviceInfo.getHeight(getActivity());
if(position < 2) {
final List<String> lst = new ArrayList<String>();
lst.add(movie.getVideo_url());
lst.add(movie.getVideo_url());
lst.add(movie.getVideo_url());
lst.add(movie.getVideo_url());
lst.add(movie.getVideo_url());
final MoviesAdapterHorizontal adapter = new MoviesAdapterHorizontal(lst);
holder.recyclerView2.setAdapter(adapter);
adapter.notifyDataSetChanged();
Now my horizontal onBindViewHolder is calling and able to see log messages. But ImageView is not displaying. i think it is hiding or overlapping