2012-04-05 8 views
0

Hallo alles, was ich Bild/Video-thumbnail in meiner Anwendung anzeigen. Ich habe folgenden Code zum Abrufen der Miniaturansichten und listet sie im Adapter. Im Folgenden finden Sie den CodeWie Bild/Video thumbnail in 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; 
     } 

    } 
} 

Seine adaequat für Bild und Videos in Samsung Galaxy Tab 10.1, aber seine Arbeit nicht in acer iconia A501.any Gedanken zu diesem Thema.

Beide laufen HoneyComb.

Rgds,

+1

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

+0

@Deva kühlen its ok. von 4 Fragen bekam er nur 2 Antworten. er ist 73% besser als du. –

+0

Das war nur ein Vorschlag. Nichts für ungut, aber 73% sind immer noch besser als 69%. – Deva

Antwort

0

Ich hoffe, dass dies für Sie hilft. zwicken sie einfach auf Ihre Bewerbung:

 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);