我有一个包含图像和视频的路径列表中的数据库。我的问题是我要显示所有图像和视频的的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;
}
}
}
这工作正常,我
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