Picasaを使用してFirebaseストレージ内のURLを取得し、recyclerviewホルダーにロードする方法で画像を取得するにはどうすればよいですか?私はピカソでこれを見ましたが、私はそれをどのように実装するのか分かりません。
Picasso.with(context).load( "http://i.imgur.com/DvpvklR.png").into(aImage); 私も周りを検索していますが、私が見ているサンプルはかなり異なっています。ここでFirebaseストレージからrecyclerlerviewに画像を取得する
は、コードスニペットです:
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.squareup.picasso.Picasso;
import .......
public class FragSearch extends Fragment {
RecyclerView mRecyclerView;
private DatabaseReference mDatabaseReference;
private LinearLayoutManager mLinearLayoutManager;
private StorageReference mStorageRef;
private FirebaseRecyclerAdapter<MsgPack, MessageViewHolder> mFirebaseAdapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.up_msg, container, false);
mRecyclerView=(RecyclerView)view.findViewById(R.id.recycleNView);
mRecyclerView.setHasFixedSize(false);
mLinearLayoutManager=new LinearLayoutManager(getContext());
return view;
}
@Override
public void onStart() {
super.onStart();
mStorageRef = FirebaseStorage.getInstance().getReference();
mDatabaseReference= FirebaseDatabase.getInstance().getReference();
mFirebaseAdapter=new FirebaseRecyclerAdapter<MsgPack, MessageViewHolder>(
MsgPack.class,
R.layout.post_listing,
MessageViewHolder.class,
mDatabaseReference.child("stackpack"))
{
@Override
protected void populateViewHolder(final MessageViewHolder viewHolder, MsgPack model, int position) {
viewHolder.bText.setText(model.getTopic());
viewHolder.dText.setText(model.getImageurl());
}
};
mRecyclerView.setAdapter(mFirebaseAdapter);
mRecyclerView.setLayoutManager(mLinearLayoutManager);
}
@Override
public void onResume() {
super.onResume();
}
public static class MessageViewHolder extends RecyclerView.ViewHolder{
public TextView aText,bText,cText;
View mView;
LinearLayout pack;
ImageView aImage;
public MessageViewHolder(View v) {
super(v);
mView=v;
bText = (TextView) mView.findViewById(R.id.txtTopic);
aImage=(ImageView)mView.findViewById(R.id.imageView);
/*How do I load retrieve the images via url in my firebase storage using picasso
*/ Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(aImage);
}
}
}
JSON形式
{"stackpack" : {
"imageurl" : "http://firebase.........er23...",
"topic" : "THANKS"
},
}
msgPack.class
.....
public class MsgPack {
private String topic;
private String imageurl;
public MsgPack(){
}
public MsgPackString topic, String imageurl) {
this.topic = topic;
this.imageurl=imageurl;
}
public String getTopic() {
return topic;
}
public String getImageurl() {
return imageurl;
}
public void setTopic(String topic) {
this.topic = topic;
}
public void setImageurl(String imageurl) {
this.imageurl = imageurl;
}
}
私は単純に指している文字列である(IMAGEURLを取得したいですfirebase storageのリソース)をリアルタイムのfirebaseから取得し、私のimageviewはそのimageurlを読み込みます。ピカソ
あなたは –
'onBindViewHolder'アダプターの方法でそれを行う必要がありますしてください、私はonBindViewHolderでそれを行う方法。 @ VladMatvienko – user7824884
FirebaseRecycleAdapterを拡張し、その中のonBindViewHolderをオーバーライドする –