【问题标题】:how to dynamically display the single image from the sdcard如何动态显示来自 sdcard 的单个图像
【发布时间】:2011-07-08 11:28:02
【问题描述】:

我已经完成了动态显示来自sdcard 的所有图像的程序。但是现在,我想从sdcard 动态显示单个图像,而不是显示所有图像。 我的编码如下

public class Gallery1Activity extends Activity {
// private ArrayList<String> imglist;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {

    ArrayList arr = new ArrayList();
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gallerygrid);

    GridView gv1=(GridView) this.findViewById(R.id.gridView1);
    //gv1.setAdapter(new galleryImageAdapter(this));

    arr = galldatabase();
    gv1.setAdapter(new galleryImageAdapter(this,arr));

}

private ArrayList galldatabase() {
    // TODO Auto-generated method stub
    ArrayList ThumbsIDList = new ArrayList();
    //Uri u=MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;

    /*String[] projection =new String[]{
        Images.Thumbnails._ID,
        Images.Thumbnails.DATA,
        Images.Thumbnails.IMAGE_ID};*/

    Cursor galleryimagecursor=managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,new String[]{
            Images.Thumbnails._ID,

            Images.Thumbnails.DATA} , null, null, null);

    if(galleryimagecursor!=null&&galleryimagecursor.moveToFirst()){


        String thumbsID;
        String thumbsImageID;
        String thumbsData;



         int num=0;

        do{


            thumbsID=galleryimagecursor.getString(galleryimagecursor.getColumnIndexOrThrow(Images.Thumbnails._ID));
            thumbsData=galleryimagecursor.getString(galleryimagecursor.getColumnIndexOrThrow(Images.Thumbnails.DATA));

            Log.i("BMP","size "+thumbsID+" "+thumbsData);  


            num++;

            /*if(thumbsImageID!= null) {*/
                ThumbsIDList.add(thumbsID);
                /*ThumbsImageIDList.add(galleryimagecursor.getString(thumbsImageIDcol));
                ThumbsDataList.add(galleryimagecursor.getString(thumbsDataCol));
        }*/



        }
        while(galleryimagecursor.moveToNext());


    }
    return ThumbsIDList;

}

}

然后是适配器代码

public class galleryImageAdapter extends BaseAdapter {

Context con;
private ArrayList<String> imgList;

private String thumbsID;
public galleryImageAdapter(Context c,ArrayList arr){
    con=c;
    imgList = arr;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return imgList.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}



@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub

    View v;

    if( convertView==null){

        LayoutInflater li;
        li = (LayoutInflater)con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v=li.inflate(R.layout.galleryadapter,null);

        final ImageView iv1=(ImageView)v.findViewById(R.id.galimage);
        TextView tv1=(TextView)v.findViewById(R.id.galimagtext);
        tv1.setText("Image"+position);
        Log.d("imagevalue",imgList.get(position));



        iv1.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+imgList.get(position)/*galleryimagecursor.getColumnIndexOrThrow(Images.Thumbnails._ID)*//*imgList.get(position)*/)); 




    }
    else 
        v=convertView;

    return v;
}

}

【问题讨论】:

    标签: android cursor emulation android-image mediastore


    【解决方案1】:

    您有使用arr = galldatabase(); 创建另一个数组列表 (newarr) 的图像拇指 id 的数组列表,它只有 1 个元素。如果您想显示第二张图像,只需从 arr arr 复制该图像的拇指 id 并将其存储在新的数组列表中

    例子

    ArrayList newarr = new ArrayList();
    newarr.add(arr.get(random position));
    

    将此列表分配给适配器,而不是分配给包含所有图像列表的原始数组列表

    使用

    gv1.setAdapter(new galleryImageAdapter(this,newarr));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2016-07-07
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多