게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
갤러리 이미지 다중 선택 구현 중인데 오류가 납니다 도와주세여 ㅠ
게시물ID : programmer_15054짧은주소 복사하기
작성자 : 민트향쿠키
추천 : 0
조회수 : 1416회
댓글수 : 0개
등록시간 : 2015/12/18 11:43:44
onClick에 해당 버튼을 누르면, 선택된 이미지들이 다른 액티비티로 (이전 액티비티로) 전달이 되어야 합니다.

case R.id.actionbar_right : 
ArrayList<String> itemList = imageAdapter.getCheckedItems(); 
Toast.makeText(MainActivity.this, "Total photos selected: "+itemList.size(), Toast.LENGTH_SHORT).show();
for (int i = 0; i < itemList.size(); i++){
Toast.makeText(MainActivity.this, itemList.get(i).toString(), Toast.LENGTH_SHORT).show();
}
//arrayList intent 로 넘기니까 out of memory 오류나네.
// Intent intent = new Intent(); 
// if ( itemList.size() != 0){
// intent.putExtra("gallery_items", itemList); 
// setResult(RESULT_OK, intent);
// } else{ 
// setResult(RESULT_CANCELED);
// }
// finish(); break;
}

주석 처리를 한 부분에서 갑자기 out of memory라고 하면서 강제종료 됩니다.

itemList (arrayList) 에 들은 것은
Toast.makeText(MainActivity.this, itemList.get(i).toString(), Toast.LENGTH_SHORT).show();
이렇게 해서 출력해보니 
/storage/emulated/0/DCIM/Screenshot/Screenshot_찍은날짜.png 
이런식으로 저장 된 경로가 나옵니다. ㅠㅠ

이미지 UrI
imageUrls.add(imagecursor.getString(dataColumnIndex));
이미지 어댑터
imageAdapter = new ImageAdapter(this, imageUrls);


이전의 액티비티에서 값을 전달받아오는 부분입니다.
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if ( requestCode == BEFORE_ACTIVITY_CODE){
LinearLayout linear = (LinearLayout)findViewById(R.id.layout_gallery_list);
if (resultCode != RESULT_OK){
txt.setText("Result Empty");
} else {
Serializable intentListData = data.getSerializableExtra("gallery_items");
ArrayList<String> items = (ArrayList<String>)intentListData; 
for (int i = 0; i < items.size(); i++){ 
TextView img = new TextView(null);
img.setText(items.get(i));
linear.addView(img);
// for (int i = 0; i < items.size(); i++){ 
// ImageView img = new ImageView(null);
// img.setImageURI(Uri.parse(items.get(i)));
// linear.addView(img);
}
}
}
}

----------------
로그캣
12-18 11:42:45.117: E/ImageLoader(15211): null
12-18 11:42:45.117: E/ImageLoader(15211): java.lang.OutOfMemoryError
12-18 11:42:45.117: E/ImageLoader(15211): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
12-18 11:42:45.117: E/ImageLoader(15211): at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:703)
12-18 11:42:45.117: E/ImageLoader(15211): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:679)
12-18 11:42:45.117: E/ImageLoader(15211): at com.nostra13.universalimageloader.core.ImageDecoder.decode(ImageDecoder.java:83)
12-18 11:42:45.117: E/ImageLoader(15211): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeWithOOMHandling(LoadAndDisplayImageTask.java:187)
12-18 11:42:45.117: E/ImageLoader(15211): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:170)
12-18 11:42:45.117: E/ImageLoader(15211): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:126)
12-18 11:42:45.117: E/ImageLoader(15211): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:72)
12-18 11:42:45.117: E/ImageLoader(15211): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
12-18 11:42:45.117: E/ImageLoader(15211): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-18 11:42:45.117: E/ImageLoader(15211): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
12-18 11:42:45.117: E/ImageLoader(15211): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
12-18 11:42:45.117: E/ImageLoader(15211): at java.lang.Thread.run(Thread.java:841)

------------------
이미지 선택을 안하고 바로 눌러도 메모리 오류가 나요. 왜이런걸까여 하 ㅠㅜ
메모리가 직접적인 문제가 아니고 제가 뭐 구현을 잘못한건가요? 이래저래 정신이 없어서 ㅠㅠ 코드가 눈에 잘 들어오지도 않네요 ㅠㅠ 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호