我需要将放大和缩小功能应用到我在对话框中显示的图像视图。
我可以将图像放在对话框中,现在我需要添加放大和缩小选项..
我已经完成了这样的代码,
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();
答案 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