2013-10-22 3 views
1

비디오 축소판 및 비디오 파일 이름 텍스트를 디렉토리에로드하려고합니다. 디렉토리에 vidoes가 많이있을 수 있으므로 AsyncTask를 사용해야합니다. AsyncTask에서 getView()에 코드를 삽입하면 오류가 발생합니다. 내가 뭘 잘못하고 있는지 말해줘.이미지 및 텍스트로 AsyncTask

public class MainActivity extends ListActivity { 

String dirNameSlash = "/videos/"; 
String path = Environment.getExternalStorageDirectory() + dirNameSlash; 
String root_sd = Environment.getExternalStorageDirectory().toString(); 
String theFile = root_sd + "/videos/"; 

File dir = new File(path); 
{ 
    assert (dir.exists()); 
    assert (dir.isDirectory()); 

} 

String[] videoFileList = dir.list(); 

public class MyThumbnaildapter extends ArrayAdapter<String> { 

    public MyThumbnaildapter(Context context, int textViewResourceId, 
      String[] objects) { 
     super(context, textViewResourceId, objects); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     View row = convertView; 
     if (row == null) { 
      LayoutInflater inflater = getLayoutInflater(); 
      row = inflater.inflate(R.layout.activity_main, parent, false); 
     } 

     TextView textfilePath = (TextView) row.findViewById(R.id.FilePath); 
     textfilePath.setText(videoFileList[position]); 
     ImageView imageThumbnail = (ImageView) row 
       .findViewById(R.id.Thumbnail); 

     Bitmap bmThumbnail; 
     bmThumbnail = ThumbnailUtils.createVideoThumbnail(path 
       + videoFileList[position], Thumbnails.MICRO_KIND); 
     imageThumbnail.setImageBitmap(bmThumbnail); 

     return row; 
    } 

} 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(new MyThumbnaildapter(MainActivity.this, 
      R.layout.activity_main, videoFileList)); 

    ListView lv = getListView(); 

} 
+0

오류가 많고 어디에서 aysnctask입니까? – Raghunandan

+0

MyThumbnailAdapter 클래스에 있기 때문에 My variables가 작동하지 않습니다. 그런 다음 해당 클래스의 일부를 AsyncTask로 이동하지만 작동하지 않습니다. – user2250122

+0

어떤 종류의 오류가 발생합니까? 어떤 logcat을 보여줄 수 있습니까? 한편, getView() 메소드는 약간의 수정을 겪을 수 있습니다. ViewHolder 패턴을 구현해야하며, 두 번째로 별도의 스레드에서 비트 맵로드를 처리해야합니다. 느린리스트 뷰를 원하지 않습니다. –

답변

0

비동기 태스크 대신에 Volley를 사용하는 것이 좋습니다. AsyncTask와 비교하여 구현하기가 쉽고 더 나은 작업을 수행 할 수 있습니다.

구현 http://java.dzone.com/articles/android-%E2%80%93-volley-library

여기를 보라 이는 구글 I/O 발리의 가장 좋은 라이브 예는 Google Play 스토어 2013 http://www.youtube.com/watch?v=yhv8l9F44qo

에서 발리를 설명한다 무화과 나무속 커크 패트릭입니다.

+0

주로 네트워킹 용으로 아닌가요? 비디오는 지역 방송이며 실제로 관련된 네트워크는 없습니다. – user2250122

+0

이것은 주로 네트워킹을위한 것입니다. – pyus13