2017-07-28 137 views
0


我有一个GridView与照片。
从gridView全屏显示图像

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_me, container, false); 
     TextView t = (TextView) view.findViewById(R.id.textName); 
     name = MySharedPreferences.getInstance(getActivity()).getName(); 
     t.setText(name); 
     gridView = (GridView) view.findViewById(R.id.gridPhoto); 
     img = new ImageAdapter(getActivity(), path); 
     gridView.setAdapter(img); 
     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
       //code 
      } 
     }); 
     requestPath(); 
     return view; 
    } 

在requestPath()中设置的ImageAdapter与图像的URL。
在onItemClick我想获得在网格
图像这是ImageAdapter

public class ImageAdapter extends BaseAdapter { 
    private Context context; 
    private final LayoutInflater inflater; 
    private List<PathImage> path; 
    private String username = null; 


    public ImageAdapter(Context c, List<PathImage> path){ 
     context = c; 
     this.path = path; 
     inflater = LayoutInflater.from(context); 
    } 


    public ImageAdapter(Context c, List<PathImage> path, String username){ 
     context = c; 
     this.path = path; 
     inflater = LayoutInflater.from(context); 
     this.username = username; 
    } 

    @Override 
    public int getCount() { 
     return path.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return path.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 

     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = convertView; 
     ImageView imageView; 

     if (v == null) { 
      v = inflater.inflate(R.layout.gridview_item, parent, false); 
      v.setTag(R.id.picture, v.findViewById(R.id.picture)); 
     } 
     imageView = (ImageView) v.getTag(R.id.picture); 
     String url = ""; 
     if(username == null) { 
      url = "http://example.com/image/" + MySharedPreferences.getInstance(context).getUsername() + "/"; 
     }else{ 
      url = "http://example.com/image/" + username + "/"; 
     } 
     Glide.with(context).load(url + path.get(position).getPath()).into(imageView); 
     return v; 
    } 

    public void updatePath(List<PathImage> p){ 
     path = p; 
     this.notifyDataSetChanged(); 
    } 

} 

我想显示另一个片段中的图像时,我点击GridView控件。
如何将图像从一个片段移动到另一个片段?

+0

检查此[回答](https://stackoverflow.com/a/12739968/5343320)。 – huk

+0

当我点击图像时,如何获取图像视图? – Ibernato933

+0

您不必获取imageview。您可以通过getvView方法获取点击imageview的位置。在你的getview中实现onclicklistner到imageview。这会给你的位置和位置,你可以得到像这样的值:url + path.get(position).getPath(),然后传递给你的片段,并应用相同的逻辑来加载图像像你在getview中使用使用滑翔。 – huk

回答

0

在ImageAdapter,implment的是定制回调象下面这样:现在

private ImageViewClickListener mImageViewClickListener; 

public interface ImageViewClickListener { 
    void onImageClicked(int position); 
} 

public void setImageViewClickListener (ViewClickListener viewClickListener) { 
    mImageViewClickListener = viewClickListener; 
} 

,在您的活动,实现ImageViewClickListener接口并调用imageAdapter.setImageViewClickListener(本)和getview执行下面的代码:

imageView.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     mImageViewClickListener.onImageClicked(position); 
    } 
}); 
+0

好吧,但在活动中,我如何通过位置获得图像的路径?当您将数组列表传递给适配器时,我只在imageAdapter – Ibernato933

+0

中有路径,使其范围变为全局并使用位置访问路径。 – huk

+0

好的,谢谢你=) – Ibernato933