2014-06-09 2 views
0

SD 카드에서 이미지를 사용하여 어떻게 할 수 있습니까?SD 카드 이미지를 ListView로 읽어들입니다.

ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>(); 

HashMap<String, String> map = new HashMap<String, String>(); 
map.put("KEY_IMAGE", Integer.toString(R.drawable.a)); //change to SD card 
map.put("KEY_LINK", "link"); 
map.put("KEY_NAME", "name"); 
menuItems.add(map); 

String[] from = { "KEY_IMAGE", "KEY_NAME", "KEY_LINK" }; 
int[] to = {R.id.imageView_cell, R.id.list_headline,R.id.list_info }; 

SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), menuItems, R.layout.list_view,from, to); 

listview.setAdapter(adapter); 

답변

1

같은 라이브러리를 사용할 수 있습니다.

SimpleAdapter.ViewBinder 인터페이스를 구현하고 setViewBinder()을 호출하여 어댑터에 데이터 바인딩 방법을 알리십시오.

LordRaydenMK에서 언급했듯이 setViewValue()의 구현 내에서 이미지를 비동기 적으로로드하는 것이 좋습니다 (예 : Picasso 사용).

0

사용자 지정 어댑터를 만들고 getView 메서드를 재정의해야합니다. 보기 재생 및보기 소유자를위한 우수 사례를 사용하여 here의 예를 찾을 수 있습니다.

이미지를로드하는 작업은 특히 백그라운드 스레드에서 수행해야 UI가 느려지지 않습니다.

배경 로딩 위해 당신은 당신은 사용자 정의 어댑터를 구현하지 않고이 작업을 수행 할 수 있습니다 Picasso.

Picasso.with(context).load(new File(...)).into(imageView2);