我如何可以加載圖像和視頻的RecyclerView
的相同的列表,這樣,當我點擊一個視頻可以播放(如Facebook博客風格),在Facebook上的圖像被視爲與以及在列表cardViews
上的視頻,有沒有任何教程,請幫助我。我真的陷入了困境,我對此沒有任何解決方案。加載視頻和圖片在RecyclerView一次
如何使一個單一RecyclerView
與圖像和視頻兩者兼而有之?
下面是我onStart
法及其那裏的FirebaseRecyclerAdapter
它啓動列表
@Override
protected void onStart() {
super.onStart();
//checkUserExists();
// mAuth.addAuthStateListener(mAuthLitsener);
try {
FirebaseRecyclerAdapter<Posts, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Posts, BlogViewHolder>(Posts.class,
R.layout.item_activity,
BlogViewHolder.class,
mDatabase) {
@Override
protected void populateViewHolder(BlogViewHolder viewHolder, final Posts model, final int position) {
final String key_post = getRef(position).getKey();
viewHolder.setTitle(model.getEventTitle());
viewHolder.setDesc(model.getEventDescription());
viewHolder.setImage(c, model.getEventImage());
viewHolder.setVideo(c,model.getEventImage());
viewHolder.imagePost.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),""+key_post,Toast.LENGTH_LONG).show();
Intent singleView = new Intent(MainActivity.this,ViewSingleImage.class);
singleView.putExtra("Blog",key_post);
singleView.putExtra("EventName",eventname);
startActivity(singleView);
}
});
}
};
mRecyclerview.setAdapter(firebaseRecyclerAdapter);
}
catch (Exception ex){
System.out.println("Error "+ ex);
}
}
這是MyViewHolder
類,我宣佈兩個圖像和URL
public static class BlogViewHolder extends RecyclerView.ViewHolder{
View mView;
private ImageView imagePost;
public BlogViewHolder(View itemView) {
super(itemView);
mView=itemView;
imagePost =(ImageView)mView.findViewById(R.id.post_image);
}
public void setTitle(String title){
TextView post_title = (TextView)mView.findViewById(R.id.post_title);
post_title.setText(title);
}
public void setDesc(String desc){
TextView post_desc = (TextView)mView.findViewById(R.id.post_desc);
post_desc.setText(desc);
}
public void setImage(final Context c,final String imageUrl){
//
Picasso.with(c).load(imageUrl).error(R.mipmap.add_btn).fit().centerInside().placeholder(R.mipmap.add_btn)
.networkPolicy(NetworkPolicy.OFFLINE).into(imagePost, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
//Reloading an image again ...
Picasso.with(c).load(imageUrl).error(R.mipmap.add_btn).placeholder(R.mipmap.add_btn)
.into(imagePost);
}
});
}
public void setVideo(final Context c, final String videoUrl){
videoLayout = (FullscreenVideoLayout) mView.findViewById(R.id.post_video);
// videoLayout.setActivity(this);
// videoLayout.setActivity(get);
Uri videoUri = Uri.parse(videoUrl);
try {
videoLayout.setVideoURI(videoUri);
} catch (IOException e) {
e.printStackTrace();
}
}
}
所以一般在ViewHolder
我宣佈,圖像和視頻,所以在OnStart
方法是我把我的適配器,以便下載ImageUrl
和VideoUrl
,但檢查他們的邏輯仍然是棘手的,在我的身邊
請看看下面的鏈接,並使用圖像和文本視圖Viewholder和onBindViewHolder創建視圖()方法之前檢查的條件。 http://stackoverflow.com/questions/30978030/playing-video-using-textureview-in-recyclerview –
@Chayan,感謝您的回覆,但是當我看到你纔會發送,它只是所有關於影片,帖子鏈接,我想要的是當人發佈一個圖像它加載到列表中,當人發佈一個視頻時,它也加載到RecyclerView,我希望它有一個自動感,當圖像和視頻加載(就像facebook的方式一樣)。 –
@huzaifah ---你是否從服務器獲取圖像URL和視頻URL ??如果你正在從服務器獲取對象類型,那麼它是圖像或視頻,然後在OncreateViewHolder()方法中創建新的視圖持有者並綁定obBindView中的數據() 方法。你婉我送一些Pescudo代碼 –