1

我需要对对话框中显示的图像视图应用放大和缩小功能。

我可以将图像放入对话框中,现在我需要为其添加放大和缩小选项..

我已经完成了这样的代码,

final Dialog dialog = new Dialog(this);
         dialog.setContentView(R.layout.lesson_full_image);
         dialog.setTitle(filetitle);  
         ImageView bmImage = (ImageView) dialog.findViewById(R.id.lessonimg);
         bmImage.setImageDrawable(Drawable.createFromPath(fileurl));
         dialog.show();
4

3 回答 3

2

创建一个布局文件作为layout_full_image.xml。在此布局中添加以下图像视图和按钮

 <com.zoomimage.helper.TouchImageView
    android:layout_weight="1"
    android:id="@+id/img_receipt"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<Button
    android:id="@+id/btn_dissmiss"
    style="@style/MyButton"
    android:text="Dismiss"
    android:layout_margin="@dimen/normal_vertical_margin"
    android:background="@drawable/btn_purple"
    android:layout_width="match_parent"
    android:layout_height="40dp" />

使用此链接下载https://github.com/MikeOrtiz/TouchImageView TouchImageView.java文件,将此文件添加到您的项目中。

现在在 imageview 的 OnClickListener 上编写代码,您必须为其显示缩放效果。

 holder.img_rcpt_selected.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            final Dialog dialog=new Dialog(orderDetailFragment.getActivity(),android.R.style.Theme_Black_NoTitleBar_Fullscreen);
            dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            dialog.setContentView(R.layout.layout_full_image);
            TouchImageView bmImage = (TouchImageView) dialog.findViewById(R.id.img_receipt);
            bmImage.setImageDrawable(Drawable.createFromPath(orderDetailFragment.getfile.getPath()));
            Button button=(Button)dialog.findViewById(R.id.btn_dissmiss);
            dialog.setCancelable(true);
            dialog.show();

            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });


        }
    });
于 2016-12-13T06:11:40.173 回答
1

我会去的方式是使用webview。由于您使用的是文件路径,因此将图像放入 webview 并使其可滚动非常简单。如果您想将其保留在同一个活动中,那么您仍然可以使用其中包含 web 视图的对话框。例如:

public void showZoomableImage(String fileUrl) {
     Dialog d = new Dialog(mContext, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
    d.setCancelable(true);
    WebView wv = new WebView(mContext);
    wv.setLayoutParams(new LayoutParams(android.widget.TableRow.LayoutParams.MATCH_PARENT, android.widget.TableRow.LayoutParams.MATCH_PARENT));
    wv.loadUrl(fileUrl);
    wv.getSettings().setBuiltInZoomControls(true);
    wv.getSettings().setSupportZoom(true)
    d.setContentView(iv);
    d.show();
}
于 2013-09-27T19:33:40.853 回答
0

这是一个链接,它将带您到有关如何执行此操作的教程...

http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog

于 2013-08-23T10:50:34.120 回答