2014-09-16 6 views
0

로드 된 이미지의 위치를 ​​얻으려고하므로 GridView에서 클릭하면 전체 화면으로 표시됩니다.로드 된 이미지의 위치를 ​​얻는 방법 - android

내 어댑터에서 내 이미지의 위치를 ​​얻는 방법을 모르겠습니다. imageResurce를 설정해야합니다. imageView.setImageResource(MyAdapter.getItem(position)); 잘못되었습니다. 난 아직도 ... 내로드 된 이미지의 내 위치를 찾을 수 없습니다

내 어댑터 코드 :

public class ImageAdapter extends BaseAdapter { 
    private LayoutInflater mInflater; 
    public ArrayList<String> f = new ArrayList<String>();// list of file paths 
    File[] listFile; 
    Bitmap myBitmap; 
    int position; 

    public ImageAdapter(Context context) { 
     mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    public int getCount() { 
     return f.size(); 
    } 

    public Object getItem(int position) { 
     return f.get(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(); 
     } 


     myBitmap = BitmapFactory.decodeFile(f.get(position)); 
     holder.imageview.setImageBitmap(myBitmap); 
     return convertView; 
    } 


    public void getFromSdcard() 
    { 
     File file= new File(android.os.Environment.getExternalStorageDirectory(),"/InstaDownloader-"); 

     if (file.isDirectory()) 
     { 
      listFile = file.listFiles(); 


      for (int i = 0; i < listFile.length; i++) 
      { 
       f.add(listFile[i].getAbsolutePath()); 
      } 
     } 
    } 
} 
class ViewHolder { 
    ImageView imageview; 


} 
+0

관련없는 코드를 게시했습니다. 클릭시 처리기에서 위치를 결정해야합니다. 제발 보여줘. – greenapps

+0

관련없는 코드? ... 내 이미지 파일 목록 경로는이 코드에 저장되었습니다 (ImageAdapter) 모든 경로는 Public ArrayList에 저장됩니다. .. 내 질문은이 경로의 위치를 ​​얻고 Image ...로 여는 방법입니다. 코드를주의 깊게 읽지 않았습니다. – boudi

+0

MyAdapter.getItem (position)은 ok입니다. 또 뭐야? 왜 이것이 잘못된 것일까 요? 너는 그렇게 말하지 않았다. 그 값을 말하십시오 (정확히 어떤 경로입니까?)? 그리고 실제로 파일 경로라면'setImageResource()'를 사용할 수 없으므로 자원에서 가져올 수 없습니다. 따라서 loadImageFromFile()과 같은 무언가 (존재한다면)를 사용하십시오. 그리고 존재하지 않는다면 BitmapFactory를 사용하여 파일에서로드하고 비트 맵을 할당하십시오. – greenapps

답변

1

당신은 단지 설정 OnItemClickListener 필요와의 GridView에 할당합니다. 선택한 항목의 위치가 표시됩니다.

OnItemClickListener myOnItemClickListener = new OnItemClickListener(){ 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
    long id) { 
      //Do what you need here, you have the position. 
    }}; 

코드의 어딘가에 GridView에 할당해야합니다.

mGridview.setOnItemClickListener(myOnItemClickListener); 

행운을 비네!

0

MyAdapter.getItem(position)입니다. 또 뭐야? 왜 이것이 잘못된 것일까 요? 너는 그렇게 말하지 않았다. 그 값을 말하십시오 (정확히 어떤 경로입니까?)? 그리고 실제로 파일 경로 인 경우 setImageResource()을 자원에서 가져올 수 없으므로 사용할 수 없습니다. 따라서 loadImageFromFile()과 같은 무언가 (존재한다면)를 사용하십시오. 그리고 존재하지 않는다면 BitmapFactory를 사용하여 파일에서로드하고 비트 맵을 할당하십시오.

귀하의 게시물 제목은 매우 혼란스럽고 요점은 아닙니다. 당신은 이미 '직책'을 알고 있으며 올바른 길을 제시하는 법을 알고 있습니다. 당신이 알지 못했던 유일한 방법은 파일로부터 이미지를 ImageView로 로딩하는 것입니다. 하지만 이제는 알 수 있습니다. 그리고 코드가 필요한 경우 ..이 코드는 여러 번 여기에 게시되었습니다.

관련 문제