2014-10-14 3 views
0

GridView에서 클릭 한 이미지에서 절대 경로를 추출하고 싶습니다. 내가 onitemclicklistener에서 코드를 작성해야하지만 난 그것을 위해 논리를 만드는 방법을 알고하지 않습니다 알고Android : GridView 반환 이미지 경로

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; 

} 
} 

:

여기 내 코드입니다.

클릭 한 항목에서 절대 경로 추출 코드를 제공해주세요. 이 샘플을 확인,

당신의 getView 방법 안에이를 추가 할 필요가 - 감사

답변

1

이 내용을 확인하십시오.

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(); 
      } 
     }); 
+0

It Worked! – Matiullah

+0

고마워요, 그 작품을 수락하시기 바랍니다 그것을 upvote 수 있습니까? –

+0

나는 그것을 upvote하려고하지만 내 평판은 15 미만입니다. upvote가 작동하지 않습니다. 어쨌든 나는 U 도움을 위해 u에 tnkful. – Matiullah

0

이이 f.getAbsolutePath();

체크인

holder.imageview.setonClickListener 

그 내부

이 파일 (F)의 경로를 확인 추가 할 수 있습니다

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; 
    } 
+0

괜찮아요. 시도해 보겠습니다. – Matiullah

+0

선생님,이 코드 줄을 어디에 추가해야합니까? – Matiullah

+0

내부에 getView 메소드를 추가해야합니다. 샘플 코드를 추가했습니다. 희망이 도움이됩니다. –