Android:GridView返回图像路径
我想从GridView中单击的图像中提取绝对路径 这是我的密码:Android:GridView返回图像路径,android,gridview,image-gallery,absolute-path,Android,Gridview,Image Gallery,Absolute Path,我想从GridView中单击的图像中提取绝对路径 这是我的密码: public class CustomGallery extends Activity { private int count; private Bitmap[] thumbnails; private boolean[] thumbnailsselection; private String[] arrPath; private ImageAdapter imageAdapter; ArrayList<String>
public class CustomGallery extends Activity {
private int count;
private Bitmap[] thumbnails;
private boolean[] thumbnailsselection;
private String[] arrPath;
private ImageAdapter imageAdapter;
ArrayList<String> f = new ArrayList<String>();// list of file paths
File[] listFile;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery);
getFromSdcard();
GridView imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
imageAdapter = new ImageAdapter();
imagegrid.setAdapter(imageAdapter);
imagegrid.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Private Folder Created", Toast.LENGTH_LONG).show();
}
});
}
public void getFromSdcard() {
File file = new File("/storage/sdcard/DCIM");
if (file.isDirectory()) {
listFile = file.listFiles();
for (int i = 0; i < listFile.length; i++) {
f.add(listFile[i].getAbsolutePath());
}
}
}
public class ImageAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public ImageAdapter() {
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return f.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.galleryitem, null);
holder.imageview = (ImageView) convertView
.findViewById(R.id.thumbImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Bitmap myBitmap = BitmapFactory.decodeFile(f.get(position));
holder.imageview.setImageBitmap(myBitmap);
return convertView;
}
}
class ViewHolder {
ImageView imageview;
}
}
公共类CustomGallery扩展活动{
私人整数计数;
私人位图[]缩略图;
私有布尔[]缩略图选择;
私有字符串[]路径;
专用图像适配器;
ArrayList f=new ArrayList();//文件路径列表
文件[]列表文件;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery);
getFromSdcard();
GridView imagegrid=(GridView)findViewById(R.id.PhoneImageGrid);
imageAdapter=新的imageAdapter();
setAdapter(imageAdapter);
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
Toast.makeText(getApplicationContext(),
“已创建私人文件夹”,Toast.LENGTH_LONG.show();
}
});
}
public void getFromSdcard(){
File File=新文件(“/storage/sdcard/DCIM”);
if(file.isDirectory()){
listFile=file.listFiles();
for(int i=0;i
我知道我必须用McClickListener编写代码,但我不知道如何为它生成逻辑
请给我从单击的项目中提取绝对路径的代码。谢谢您可以添加
holder.imageview.setonClickListener
并在其中通过f.getAbsolutePath()检查文件f的路径代码>
检查这个-
您必须在getView方法中添加此项,请检查此示例
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.galleryitem, null);
holder.imageview = (ImageView) convertView
.findViewById(R.id.thumbImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Bitmap myBitmap = BitmapFactory.decodeFile(f.get(position));
holder.imageview.setImageBitmap(myBitmap);
holder.imageview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("Absolute Path :"+f.getAbsolutePath(););
}
});
return convertView;
}
检查一下这个,这可能对你有帮助
imagegrid.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(getApplicationContext(),
f.get(position), Toast.LENGTH_LONG).show();
}
});
imagegrid.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
Toast.makeText(getApplicationContext(),
f、 get(position),Toast.LENGTH_LONG.show();
}
});
先生,您能告诉我应该在哪里添加这些代码行吗?您必须在getView方法中添加此代码,我已经添加了一些示例代码。希望这有帮助。先生,f.getAbsolutePath()在这段代码中不起作用。在f之后按g。我只有两个选项,即get和getclassf是文件对象,请检查并根据您的代码进行修改。先生,我无法执行此操作。你能帮我做吗。我尝试了很多,但仍然坚持在它的作品,你能接受它,并提高它吗?我试图提高它,但我的声誉不到15。upvote不起作用。不管怎样,我向你求助。哦,是的,实际上我不知道这个功能。我看到它了:)