簡體   English   中英

如何在android中顯示圖片/視頻縮略圖

[英]How to display image/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;
        }

    }
}

它在三星 galaxy tab 10.1 中的圖像和視頻工作正常,但它在 acer iconia A501 中不起作用。對此有任何想法。

兩者都在運行 HoneyComb。

Rgds,

我希望這對你有幫助。 只需將其調整到您的應用程序:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM