Android 如何选择多个图像getid(如:MediaStore.image.thoumble.\u ID)
我想处理图像结构,我想知道当我选择多个图像时如何获取图像id我使用上下文操作模式 请回答我的问题 公共类GalleryImage扩展活动{Android 如何选择多个图像getid(如:MediaStore.image.thoumble.\u ID),android,android-activity,Android,Android Activity,我想处理图像结构,我想知道当我选择多个图像时如何获取图像id我使用上下文操作模式 请回答我的问题 公共类GalleryImage扩展活动{ GridView gridView; ImageAdapter imageAdapter; private Cursor cursor; protected Object mActionMode; private int columnIndex; String[] projection = { MediaStore.Images.Thumbnails._ID
GridView gridView;
ImageAdapter imageAdapter;
private Cursor cursor;
protected Object mActionMode;
private int columnIndex;
String[] projection = { MediaStore.Images.Thumbnails._ID };
String Tag ="sample";
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.galleryimages);
gridView = (GridView) findViewById(R.id.lvImagesGallery);
imageAdapter = new ImageAdapter(this);
cursor = getContentResolver().query(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, projection,
null, null, MediaStore.Images.Thumbnails.IMAGE_ID);
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
gridView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
gridView.setAdapter(imageAdapter);
final ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
mode=null;
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getMenuInflater().inflate(R.menu.contextual_menu, menu);
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.add_Tag:
int nr = 0;
//imageAdapter.clearSelection();
mode.finish();
}
return false;
}
};
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ActionMode mode =startActionMode(mActionModeCallback);
mode.setTitle(gridView.getCheckedItemCount() + " Selected");
gridView.setSelected(true);
}
});
/*listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
startActionMode(mActionModeCallback);
listView.setSelected(true);
return true;
}
});*/
}
class ImageAdapter extends BaseAdapter {
LayoutInflater layout;
private Context context;
public ImageAdapter(Context context) {
this.context = context;
layout = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return cursor.getCount();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView picturesView;
if (convertView == null) {
convertView = layout.inflate(R.layout.gridimage, null);
}
picturesView = (ImageView) convertView
.findViewById(R.id.ivGalleryImage);
cursor.moveToPosition(position);
int imageID = cursor.getInt(columnIndex);
picturesView.setImageURI(Uri.withAppendedPath(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""
+ imageID));
return convertView;
}
}
}更改gridView.SetChoiceModelListView.CHOICE\u MODE\u MULTIPLE;到
网格视图可以返回图像的id和相对于网格视图而不是相对于xml的位置
获取栅格视图中图像的id的步骤
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(getApplicationContext(), "id and position = "+id+" "+position, Toast.LENGTH_LONG).show();
}
});
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(getApplicationContext(), "id and position = "+id+" "+position, Toast.LENGTH_LONG).show();
}
});