2017-04-06 1 views
1

Picasa를 사용하여 Firebase 스토리지에서 해당 URL을 가져 와서 어떻게 가져 와서 이미지를 가져 와서 recyclerview 홀더에로드 할 수 있습니까? 나는 이것을 picasso에서 보았지만 그것을 구현하는 방법을 모른다.
Picasso.with (context) .load ("http://i.imgur.com/DvpvklR.png") .into (이미지); 나는 또한 주변을 검색했지만 내가 본 샘플은 아주 다르다. 여기 Firebase storage에서 recyclerview로 이미지 가져 오기

는 코드 조각입니다 : msgPack.class

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" 
}, 
} 

..... 
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; 
} 
} 
단순히 캐릭터가 가리키는 이미지 URL을 (인출 할

firebase storage의 리소스)를 실시간 firebase에서 가져 와서 내 imageview를 불러옵니다. 피카소

+0

당신이 –

+0

은'onBindViewHolder' 어댑터의 방법으로 그것을해야 제발, 내가 onBindViewHolder에서 그것을 할 방법. @vladMatvienko – user7824884

+0

FirebaseRecycleAdapter를 확장하고 onBindViewHolder를 오버라이드하여 –

답변

0

populateViewHolder 방법에 사용할 수 있습니다. 그냥 이미지 뷰에서 컨텍스트를 잡아 :

@Override 
     protected void populateViewHolder(final MessageViewHolder viewHolder, MsgPack model, int position) { 

      viewHolder.bText.setText(model.getTopic()); 
      viewHolder.dText.setText(model.getImageurl()); 
      Picasso.with(viewHolder.aImage.getContext()).load(model.getImageurl()).into(viewHolder.aImage); 

     } 
+0

이 문제를 해결했습니다. 감사합니다. @ Rosário Pereira Fernandes – user7824884

관련 문제