您的位置:首页 > 移动开发 > Android开发

Android dialog点击查看大图

2016-01-07 13:44 375 查看
这两天在做一个点击查看大图的功能,需求简单,网上查了查都太复杂了,就自己用dialog写了一个。

需求:网络下载图片到本地并显示,图片数目不定,点击可查看大图。

思路:imageView动态添加到HorizontalScrollView里面,点击用dialog显示,就是这么简单!

xml代码:

主布局:

…….

<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="100dp">
<LinearLayout
android:id="@+id/mygallery"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>

</LinearLayout>

</HorizontalScrollView>
dialog布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="@color/transparent60"
android:layout_height="match_parent">

<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:background="@color/white"
android:padding="20dp"
android:id="@+id/iv_dialog" />
</LinearLayout>

java代码:

//dialog布局
LayoutInflater inflaterDl = LayoutInflater.from(getActivity());
final LinearLayout layout = (LinearLayout)inflaterDl.inflate(R.layout.dialog_house, null);
final Dialog dialog = new AlertDialog.Builder(getActivity()).create();

//图填充第一个空白
View view = new View(getActivity());
view.setLayoutParams(new ViewGroup.LayoutParams(35, 35));
mLinearLayout.addView(view);

if (mBean_HouseInfo.bd_typefiles.size() != 0) {
for (int i = 0; i < mBean_HouseInfo.bd_typefiles.size(); i++) {
ImageView imageView = new ImageView(getActivity());
imageView.setLayoutParams(new ViewGroup.LayoutParams(350, 350));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
ImageLoader.getInstance().displayImage(URLConfigure.IMAGELOAD + mBean_HouseInfo.bd_typefiles.get(i), imageView, mDisplayImageOptions);
View view2 = new View(getActivity());
view2.setLayoutParams(new ViewGroup.LayoutParams(35, 35));
mLinearLayout.addView(imageView);
mLinearLayout.addView(view2);
final int finalI = i;
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

dialog.show();
dialog.getWindow().setContentView(layout);

ImageView imageView1 = (ImageView) layout.findViewById(R.id.iv_dialog);
ImageLoader.getInstance().displayImage(URLConfigure.IMAGELOAD + mBean_HouseInfo.bd_typefiles.get(finalI), imageView1);

}
});
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {//必须写
@Override
public void onDismiss(DialogInterface dialog) {
}
});

}
}
代码很简单,源码我就不上了,有问题欢迎留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: