当前位置: 首页 > 面试题库 >

如何在网格视图中将图像和视频显示为缩略图?

鲁阳焱
2023-03-14
问题内容

我有一个包含图像和视频路径列表的数据库。我的问题是我必须将所有图像和视频显示在GridView。我已经从数据库获取了路径列表,但无法在GridView中显示它们。请帮我。这是我的代码。提前致谢

 public class GridGallery extends Activity
{

    ArrayList<String>list;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.grid_gallery);
        DataModel dbModel = new DataModel(this);
        list = dbModel.selectAll();

        GridView sdcardImages = (GridView) findViewById(R.id.sdcard);
        sdcardImages.setAdapter(new ImageAdapter(this));

    }


     /**
     * Adapter for our image files.
     */
    private class ImageAdapter extends BaseAdapter {

        private final Context context;

        public ImageAdapter(Context localContext) {
            context = localContext;
        }

        public int getCount() 
        {
            return list.size();
        }
        public Object getItem(int position) 
        {
            return position;
        }
        public long getItemId(int position) 
        {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) 
        {
            ImageView picturesView;
            if (convertView == null) {
                picturesView = new ImageView(context);

                for(int i=0;i<list.size();i++)
                {
                    Bitmap mBitmap = BitmapFactory.decodeFile(list.get(i));
                    picturesView.setImageBitmap(mBitmap);
                }
                picturesView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                picturesView.setPadding(8, 8, 8, 8);
                picturesView.setLayoutParams(new GridView.LayoutParams(100, 100));
            }
            else 
            {
                picturesView = (ImageView)convertView;
            }
            return picturesView;
        }
    }

}

问题答案:

是..

经过长时间的实验,我得到了答案:这是:

public class GridGallery extends Activity
{
    ArrayList<String>list;    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.grid_gallery);
        DataModel dbModel = new DataModel(this);
        list = dbModel.selectAll();

        GridView sdcardImages = (GridView) findViewById(R.id.sdcard);
        sdcardImages.setAdapter(new ImageAdapter(this));    
    }

     /**
     * Adapter for our image files.
     */
    private class ImageAdapter extends BaseAdapter {

        private final Context context;     
        public ImageAdapter(Context localContext) {
            context = localContext;
        }

        public int getCount() 
        {
            return list.size();
        }
        public Object getItem(int position) 
        {
            return position;
        }
        public long getItemId(int position) 
        {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) 
        {
            ImageView picturesView;
            if (convertView == null) {
                picturesView = new ImageView(context);    
                 if(list.get(position).contains(".jpg"))
                {
                     bitmap = BitmapFactory.decodeFile(list.get(position)); //Creation of Thumbnail of image
                }
                else if(list.get(position).contains(".mp4"))
                {
                    bitmap = ThumbnailUtils.createVideoThumbnail(list.get(position), 0); //Creation of Thumbnail of video
                }
                picturesView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                picturesView.setPadding(8, 8, 8, 8);
                picturesView.setLayoutParams(new GridView.LayoutParams(100, 100));
            }
            else 
            {
                picturesView = (ImageView)convertView;
            }
            return picturesView;
        }
    }

}

这对我来说很好



 类似资料:
  • 问题内容: 我正在使用node.js构建应用程序,我已成功上传了视频,但需要为其生成视频缩略图。目前,我使用node exec执行ffmpeg的系统命令来制作缩略图。 此代码来自http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a- resumable-video-uploade-in-node- js/中 的教程 上面

  • 问题内容: 我想用Java生成视频的缩略图预览。我主要是JMF,并且视频操作疏远了。 有一个简单的方法吗? 那编解码器呢?我需要处理吗? 是否支持任何视频类型?(包括Quicktime) 问题答案: 似乎有一些例子比我要发送给您的例子要好得多。 参见http://krishnabhargav.blogspot.com/2008/02/processing-videos-in- java.html

  • 我有一个简单的网站,人们上传视频,所以我想从上传的视频生成一个简单的缩略图。 我回显了来自PHP的命令,得到的结果如下:C:\Ffmpeg\Ffmpeg-20130605-git-3289670-win64-static\bin-ic:\xampp\tmp\php27F1。tmp-an-ss 12-s 150x90-vcodec mjpeg制造。jpg问题 所以我接受了上面的命令,并将其输入Cmd

  • 问题内容: 我想创建一个带有缩略图的图像文件视图,所以我将FileView子类化,并在创建方法中进行了一些缩放,以便显示缩略图图像。 但是,总体效果是,该小部件在打开目录并显示缩略图之前需要花费一些时间。在下面的createImageIcon()中,我需要两次调用new ImageIcon()两次,分别使用图像文件路径和下一次调整大小的图像作为构造函数参数。我认为这是使小部件变慢的原因。 有没有更

  • 问题内容: 我想用上传到S3的视频制作缩略图,我知道如何使用Node.js和ffmpeg制作缩略图。 根据此论坛帖子,我可以添加库: ImageMagick是当前默认情况下唯一提供的外部库,但是在创建Lambda函数时,您可以在提供的zip文件中包括所有其他依赖项。请注意,如果这是本机库或可执行文件,则需要确保它在Amazon Linux上运行。 但是如何将静态ffmpeg二进制文件放在AWS L

  • 好吧,我有gridview,它从服务器中提取图像