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을 데이터베이스에 저장하였습니다. 그리드뷰에 저장된 이미지들을 띄우고싶은데 위처럼하면 아무것도 뜨지가않습니다. 어떻게 고쳐야할까요?? 고수분들 도와주세요 ㅠㅠ
