我在缩略图中显示视频时遇到问题..
从数据库中检索视频链接并将其存储在字符串数组中。
我想在缩略图网格视图中显示视频数组。怎么实现这个?它可以显示?
任何人都可以帮助我吗?非常感谢。
我试过了......
vid = new ArrayList<String>(new ArrayList<String>(vid));
runOnUiThread(new Runnable() {
public void run() {
setContentView(R.layout.gallery);
GridView grd = (GridView)findViewById(R.id.gridView1);
grd.setAdapter(new ImageAdapter(this));
grd.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent,View v,int pos,long id)
{
Toast.makeText(getBaseContext(),
"pic"+(pos+1)+"select ",Toast.LENGTH_SHORT).show();
}
});
}
});
return;
private class ImageAdapter extends BaseAdapter {
private final Runnable context;
public ImageAdapter(Runnable runnable) {
context = runnable;
}
public int getCount()
{
return vid.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) context);
//Creation of Thumbnail of video
Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(vid.get(position),0);
picturesView.setImageBitmap(bitmap);
picturesView.setScaleType(ImageView.ScaleType.FIT_XY);
//picturesView.setPadding(8, 8, 8, 8);
picturesView.setLayoutParams(new Gallery.LayoutParams(150, 120));
}else {
picturesView = (ImageView)convertView;
}
return picturesView;
}
答案 0 :(得分:2)
它非常简单,而不是字符串数组使用对象arraylist,它具有网格项和视频网址的缩略图/位图,如下所示。
class video
{
Bitmap thumnail;
String videoURL;
}
从数据库中创建此视频类的arraylist然后在getview中使用该arraylist。
videoList = new ArrayList<Video>();
// populate videolist
public int getCount()
{
return videoList.size();
}
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView picturesView;
if (convertView == null) {
picturesView = new ImageView((Context) context);
//Creation of Thumbnail of video
//Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(vid.get(position),0);
Bitmap bitmap = videoList.get(position).thumnail;
picturesView.setImageBitmap(bitmap);
picturesView.setScaleType(ImageView.ScaleType.FIT_XY);
//picturesView.setPadding(8, 8, 8, 8);
picturesView.setLayoutParams(new Gallery.LayoutParams(150, 120));
}else {
picturesView = (ImageView)convertView;
}
return picturesView;
}
然后在onitemclick中,使用相同的arraylist你可以获得视频,你可以在单独的屏幕上播放视频。
grd.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent,View v,int pos,long id)
{
String videoLink = videoList.get(pos).videoURL;
// pass this video link to another activity where you want to play the video
}
});