android – 具有图像的Popupwindow

前端之家收集整理的这篇文章主要介绍了android – 具有图像的Popupwindow前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要能够在列表视图中单击一个imgview,这应该打开一个显示图像的大小的弹出窗口.我设法实现了clicklistener,但是在创建弹出窗口时仍然失败,即使只是一个测试文本视图.

在我的主要活动中,我跑

lstView.setAdapter(new CustomListViewAdapter(this,dataFromDBListe,orientation));

在我的CustomListVievAdapter中,我有我的clicklistener(可以在此时显示吐司),我有以下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;
}

我在这里尝试了大多数常见的链接解决方案的弹出窗口,但不能使其工作.

解决方法

创建自定义对话框并在其中传递图像….
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>

猜你在找的Android相关文章