마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

파이어베이스 저장소 이미지 불러오기

0 추천
public class PhotoViewer extends Activity {

    private ChildEventListener mChildEventListener;

    Activity act = this;

    String ImgUrl;

    GridView gridView;
    //이미지 배열 선언
    ArrayList<Bitmap> picArr = new ArrayList<Bitmap>();

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.photo_viewer);

        FirebaseDatabase.getInstance().getReference("url");
        mChildEventListener = new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                PhotoData photoData = dataSnapshot.getValue(PhotoData.class);
                photoData.firebaseKey = dataSnapshot.getKey();
                ImgUrl = photoData.imageUrl;
            }


            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        };
        FirebaseDatabase.getInstance().getReference().addChildEventListener(mChildEventListener);


        Bitmap bm = LoadImage(ImgUrl);
//        Bitmap bm1 = BitmapFactory.decodeResource(getResources(),R.drawable.boy);

        picArr.add(bm);
//        picArr.add(bm1);

        gridView = (GridView) findViewById(R.id.ImgGridView);
        gridView.setAdapter(new gridAdapter());


    }

    private Bitmap LoadImage( String $imagePath ) {
        // TODO Auto-generated method stub
        InputStream inputStream = OpenHttpConnection( $imagePath ) ;
        Bitmap bm = BitmapFactory.decodeStream( inputStream ) ;

        return bm;
    }

    private InputStream OpenHttpConnection(String $imagePath) {
        // TODO Auto-generated method stub
        InputStream stream = null ;
        try {
            URL url = new URL( $imagePath ) ;
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection() ;
            urlConnection.setRequestMethod( "GET" ) ;
            urlConnection.connect() ;
            if( urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK ) {
                stream = urlConnection.getInputStream() ;
            }
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return stream ;
    }

    public class gridAdapter extends BaseAdapter {

        LayoutInflater inflater;

        public gridAdapter() {
            inflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

        @Override
        public int getCount() {
// TODO Auto-generated method stub
            return picArr.size();    //그리드뷰에 출력할 목록 수
        }

        @Override
        public Object getItem(int position) {
// TODO Auto-generated method stub
            return picArr.get(position);    //아이템을 호출할 때 사용하는 메소드
        }

        @Override
        public long getItemId(int position) {
// TODO Auto-generated method stub
            return position;    //아이템의 아이디를 구할 때 사용하는 메소드
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
            if(convertView == null) {
                convertView = inflater.inflate(R.layout.row, parent, false);
            }
            ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView1);
            imageView.setImageBitmap(picArr.get(position));

            return convertView;
        }
    }
}

아래와 같이 저장소에 이미지 업로드할때 다운로드url을 데이터베이스에 저장하였습니다. 그리드뷰에 저장된 이미지들을 띄우고싶은데 위처럼하면 아무것도 뜨지가않습니다. 어떻게 고쳐야할까요?? 고수분들 도와주세요 ㅠㅠ

혀빙 (360 포인트) 님이 2017년 12월 1일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...