Ich verwende eine Rasteransicht, um Bilder mit Glide anzuzeigen. Wie kann ich ein ausgewähltes Bild im Raster markieren? Außerdem muss ich den Benutzer darauf beschränken, nur ein Bild auszuwählen. Wenn der Benutzer auf ein weiteres Bild klickt, sollte das erste Bild deaktiviert werden.How to Highlite geklickt/ausgewählt Raster in Rasteransicht
Hier ist meine XML-Datei
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<GridView
android:id="@+id/galleryGridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="280dp"
android:gravity="center"
android:horizontalSpacing="2dp"
android:numColumns="3"
android:padding="2dp"
android:stretchMode="columnWidth"
android:verticalSpacing="2dp"
android:listSelector="@drawable/selected_grid">
</GridView>
</RelativeLayout>
und Java-Code
GridView gallery = (GridView) findViewById(R.id.galleryGridView);
gallery.setAdapter(new ImageAdapter(this));
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// Help me here
}
});
}
Adapter
private class ImageAdapter extends BaseAdapter {
/** The context. */
private Activity context;
/**
* Instantiates a new image adapter.
*
* @param localContext
* the local context
*/
public ImageAdapter(Activity localContext) {
context = localContext;
images = getAllShownImagesPath(context);
}
public int getCount() {
return images.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView,
ViewGroup parent) {
if (convertView == null) {
picturesView = new ImageView(context);
picturesView.setScaleType(ImageView.ScaleType.FIT_CENTER);
picturesView
.setLayoutParams(new GridView.LayoutParams(270, 270));
} else {
picturesView = (ImageView) convertView;
}
Glide.with(context).load(images.get(position))
.placeholder(R.mipmap.ic_launcher).centerCrop()
.into(picturesView);
return picturesView;
}
fügen Sie Ihren Code von ImageAdapter – Pavya
Sie es innerhalb Adapter verarbeiten kann – mdDroid
list_selector.xml
und setzen listSelector Ihrer gridview machen @ Pravin ImageAdapter hinzugefügt. – Ramesh