J'ai un GridView avec des photos.
Afficher l'image en plein écran depuis 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;
}
Dans requestPath() redéfinissent le ImageAdapter avec l'URL des images.
Dans onItemClick Je voudrais obtenir l'image dans la grille
Ceci est 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();
}
}
Je voudrais afficher les images dans un autre fragment lorsque je clique sur gridview.
Comment déplacer une image d'un fragment à un autre?
Cochez cette case [answer] (https://stackoverflow.com/a/12739968/5343320). – huk
Comment obtenir l'image lorsque je clique sur une image? – Ibernato933
Vous n'avez pas besoin de l'imageview. Vous pouvez obtenir l'emplacement en cliquant sur imageview de la méthode getvView. Implémentez onclicklistner à imageview dans votre getview. Cela vous donnera la position et par la position, vous pouvez obtenir le get la valeur comme: url + path.get (position) .getPath() et ensuite le passer à votre fragment et appliquer la même logique pour charger l'image que vous avez utilisé dans getview en utilisant le glissement. – huk