I need to be able to click an imgview
in a listview
, which should open a popup showing the image fullsize. I've managed to implement the clicklistener
, but keep failing at creating the popup, even with just a testing textview
.
In my mainActivity oncreate i run
lstView.setAdapter(new CustomListViewAdapter(this, dataFromDBListe, 0, orientation));
In my CustomListVievAdapter, where i have my clicklistener (which can display a toast at the moment) I have the following getView()
:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.custom_row, null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.prev = (TextView) convertView.findViewById(R.id.prevNrDate);
holder.prevTitle = (TextView) convertView.findViewById (R.id.prevTitle);
holder.next = (TextView) convertView.findViewById(R.id.nextNrDate);
holder.nextTitle = (TextView) convertView.findViewById (R.id.nextTitle);
holder.picture = (ImageView) convertView.findViewById (R.id.showPic);
holder.prevFast = (TextView) convertView.findViewById(R.id.prev);
holder.nextFast = (TextView) convertView.findViewById(R.id.next);
holder.linearLayout = (LinearLayout) convertView.findViewById (R.id.imgLay);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
testSort(holder);
final Show item = showList.get(position);
holder.title.setText(item.getTitle());
holder.prev.setText(item.getPrevNr() + " - " + item.getPrevDate());
holder.prevTitle.setText(item.getPrevTitle());
holder.next.setText(item.getNextNr() + " - " + item.getNextDate());
holder.nextTitle.setText(item.getNextTitle());
if(pic) {
holder.linearLayout.setVisibility(8);
} if(compact) {
holder.linearLayout.setVisibility(8);
holder.prevTitle.setVisibility(8);
holder.nextTitle.setVisibility(8);
} else {
// new DownloadImageTask(holder.picture).execute(item.getShowId());
String path;
if(ih.checkImg(item.getShowId())) {
path = PATH + item.getShowId() + ".jpg";
} else {
path = "bla";
}
// DrawableManager dm = new DrawableManager();
// dm.fetchDrawableOnThread(path, holder.picture);
imageDownloader.download(path, holder.picture);
// ih.download(path, holder.picture);
}
holder.picture.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(context, "IMG clicked",
Toast.LENGTH_LONG).show();
//Show popup with full image of the clicked small img.
}
});
return convertView;
}
I tried most of the commonly linkedto solutions in here for popupwindow, but can't make it work.
Create custom-dialog and pass image in it....
private void loadPhoto(ImageView imageView, int width, int height) {
ImageView tempImageView = imageView;
AlertDialog.Builder imageDialog = new AlertDialog.Builder(this);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_fullimage_dialog,
(ViewGroup) findViewById(R.id.layout_root));
ImageView image = (ImageView) layout.findViewById(R.id.fullimage);
image.setImageDrawable(tempImageView.getDrawable());
imageDialog.setView(layout);
imageDialog.setPositiveButton(resources.getString(R.string.ok_button), new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
imageDialog.create();
imageDialog.show();
}
custom_fullimage_dialog.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root" android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="10dp">
<ImageView android:id="@+id/fullimage" android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ImageView>
<TextView android:id="@+id/custom_fullimage_placename"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:textColor="#FFF">
</TextView>
</LinearLayout>