2012-04-05 5 views
0

안녕하세요. 내 응용 프로그램에 이미지/비디오 축소판 그림을 표시하고 싶습니다. 다음 코드를 사용하여 축소판을 검색하고 어댑터에 나열했습니다. 다음은 코드 삼성 갤럭시 탭 10.1의 이미지와 동영상의android에서 이미지/비디오 축소판을 표시하는 방법

public class ImageAdapter extends BaseAdapter { 
     private Context context; 

     private final String[] VideoValues; 

     public ImageAdapter(Context context, String[] VideoValues) { 
      this.context = context; 
      this.VideoValues = VideoValues; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      System.out.println("***********In getView************"); 
      LayoutInflater inflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      View gridView; 

      if (convertView == null) { 

       gridView = new View(context); 

       // get layout from gridlayout.xml 
       gridView = inflater.inflate(R.layout.gridlayout, null); 

       // set value into textview 
       TextView textView = (TextView) gridView 
         .findViewById(R.id.grid_item_label); 
       textView.setText(fileList[position]); 
       System.out.println("value of fileList[position]" + fileList[0]); 
       // set image 
       ImageView imageThumbnail = (ImageView) gridView 
         .findViewById(R.id.grid_item_image); 

       Bitmap bmThumbnail; 

       System.out 
         .println(">>>>>>>>>>>>>>>>>>>>>>>>>>>> file path>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" 
           + fileList[position]); 

       bmThumbnail = ThumbnailUtils.createVideoThumbnail(FILE_PATH 
         + fileList[position], 
         MediaStore.Video.Thumbnails.MINI_KIND); 
       if (bmThumbnail != null) { 
        System.out 
          .println(">>>>>>>>>>>>>>>>>>>>>>>>>>>> THUMB NAIL>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); 

        imageThumbnail.setImageBitmap(bmThumbnail); 
       } else { 
        System.out 
          .println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>NO THUMB NAIL>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); 

       } 

      } else { 
       gridView = (View) convertView; 
      } 

      return gridView; 
     } 

     public int getCount() { 
      // return 0; 
      return VideoValues.length; 
     } 

     public Object getItem(int position) { 
      return null; 
     } 

     public long getItemId(int position) { 
      return 0; 
     } 

    } 
} 

그 작업 괜찮지 만, 그것이에 에이서 ICONIA A501.any 생각에 작동하지 않습니다.

둘 다 HoneyComb을 실행 중입니다.

Rgds,

+1

http://stackoverflow.com/q/9461283/1012284 –

+0

@Deva가 확인을 냉각. 4 개의 질문 중 2 개의 대답 만 받았습니다. 그는 당신보다 73 % 나 낫습니다. –

+0

그것은 단지 제안이었습니다. 불쾌감은 없지만 73 %는 여전히 69 % 이상입니다. – Deva

답변

0

이 정보가 도움이되기를 바랍니다. 그냥 응용 프로그램을 조정할 :

 View view = convertView; 
     if (convertView == null) 
      view = inflater.inflate(R.layout.grid_item_layout, null); 

     ImageView image = (ImageView) view.findViewById(R.id.image); 
     TextView textView = (TextView) view.findViewById(R.id.date); 

     final BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inSampleSize = 8; 

     String filePath = fileList.get(position).getFilePath(); 
     String dateTaken = fileList.get(position).getDateTaken(); 
     Long type = fileList.get(position).getType(); 
     Bitmap bitmap = null; 
     if(type == MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE) 
      bitmap = BitmapFactory.decodeFile(filePath, options); 
     else if(type == MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO) 
      bitmap = ThumbnailUtils.createVideoThumbnail(filePath, 0); 
     image.setImageBitmap(bitmap); 
     textView.setText(dateTaken); 
관련 문제