如何显示图像和视频的缩略图网格视图?网格、视图、缩略图、图像

2023-09-04 10:22:40 作者:得我者得天下

我有一个包含图像和视频的路径列表中的数据库。我的问题是我要显示所有图像和视频的的GridView 。我已经从数据库路径的列表,但我不能给他们显示的GridView。请帮我。这是我的code。 在此先感谢

 公共类GridGallery扩展活动
{

    ArrayList的<字符串>清单;

    @覆盖
    公共无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.grid_gallery);
        DataModel的DbModel之后=新的DataModel(这一点);
        表= dbModel.selectAll();

        GridView控件sdcardImages =(GridView控件)findViewById(R.id.sdcard);
        sdcardImages.setAdapter(新ImageAdapter(本));

    }


     / **
     *适配器为我们的图像文件。
     * /
    私有类ImageAdapter扩展了BaseAdapter {

        私人最终上下文的背景下;

        公共ImageAdapter(上下文localContext){
            上下文= localContext;
        }

        公众诠释getCount将()
        {
            返回则为list.size();
        }
        公共对象的getItem(INT位置)
        {
            返回的位置;
        }
        众长getItemId(INT位置)
        {
            返回的位置;
        }

        公共查看getView(INT位置,查看convertView,父母的ViewGroup)
        {
            ImageView的picturesView;
            如果(convertView == NULL){
                picturesView =新ImageView的(上下文);

                的for(int i = 0; I<则为list.size();我++)
                {
                    位图mBitmap = BitmapFactory.de codeFILE(list.get(一));
                    picturesView.setImageBitmap(mBitmap);
                }
                picturesView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                picturesView.setPadding(8,8,8,8);
                picturesView.setLayoutParams(新GridView.LayoutParams(100,100));
            }
            其他
            {
                picturesView =(ImageView的)convertView;
            }
            返回picturesView;
        }
    }

}
 

解决方案

是的。

我得到的答案很长的实验后:这里是:

 公共类GridGallery扩展活动
{
    ArrayList的<字符串>清单;
    @覆盖
    公共无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.grid_gallery);
        DataModel的DbModel之后=新的DataModel(这一点);
        表= dbModel.selectAll();

        GridView控件sdcardImages =(GridView控件)findViewById(R.id.sdcard);
        sdcardImages.setAdapter(新ImageAdapter(本));
    }

     / **
     *适配器为我们的图像文件。
     * /
    私有类ImageAdapter扩展了BaseAdapter {

        私人最终上下文的背景下;
        公共ImageAdapter(上下文localContext){
            上下文= localContext;
        }

        公众诠释getCount将()
        {
            返回则为list.size();
        }
        公共对象的getItem(INT位置)
        {
            返回的位置;
        }
        众长getItemId(INT位置)
        {
            返回的位置;
        }

        公共查看getView(INT位置,查看convertView,父母的ViewGroup)
        {
            ImageView的picturesView;
            如果(convertView == NULL){
                picturesView =新ImageView的(上下文);
                 如果(list.get(位置)。载(JPG))
                {
                     位= BitmapFactory.de codeFILE(list.get(位置)); //创建图像的缩略图
                }
                否则,如果(list.get(位置)。载(MP4))
                {
                    位图= ThumbnailUtils.createVideoThumbnail(list.get(位置),0); //创建视频的缩略图
                }
                picturesView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                picturesView.setPadding(8,8,8,8);
                picturesView.setLayoutParams(新GridView.LayoutParams(100,100));
            }
            其他
            {
                picturesView =(ImageView的)convertView;
            }
            返回picturesView;
        }
    }

}
 

这工作正常,我

Visio怎么显示网格视图界面

I have a database which contains list of image and video path. My problem is I have to show all the images and video in a GridView. I have taken list of path from database but I am not able to show them in GridView. Please help me. Here is my code. Thanks in Advance

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

}

解决方案

Yes..

I got the answer after a long experiment: here it is:

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

}

This works fine for me