对话框android中的图像缩放选项

时间:2013-08-23 10:47:26

标签: android image zoom dialog

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

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

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

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();

3 个答案:

答案 0 :(得分:2)

创建布局文件为 layout_full_image.xml。 在此布局中添加以下imageview和按钮

 <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();
                }
            });


        }
    });

答案 1 :(得分:1)

我要采用的方式是使用webview。由于您使用的是文件路径,因此将图像放在webview中并使其可滚动非常简单。如果您希望将其保留在同一个活动中,那么您仍然可以使用带有webview的对话框。例如:

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();
}

答案 2 :(得分:0)

以下链接将引导您了解如何执行此操作的教程...

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