加载在线图片并点击预览功能实现。
主界面布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#E6EEF2"
android:orientation="vertical" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/ll_add"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
</LinearLayout>
主界面代码:
package com.jiawu.demo;
import java.util.HashMap;
import com.bumptech.glide.Glide;
import android.os.Bundle;
import android.app.Activity;
import android.util.TypedValue;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private LinearLayout ll_add;
private String[] img={
"http://img.51ztzj.com/upload/image/20151116/1447640212670_670x419.jpg",
"http://img.51ztzj.com/upload/image/20150329/dn201503286004_670x419.jpg",
"http://pic13.photophoto.cn/20091109/0005018327183438_b.jpg",
"http://c.hiphotos.baidu.com/zhidao/pic/item/5ab5c9ea15ce36d3c704f35538f33a87e950b156.jpg",
"http://g.hiphotos.baidu.com/zhidao/pic/item/a1ec08fa513d2697479b2ffa57fbb2fb4216d8c8.jpg",
"http://www.pp3.cn/uploads/201510/2015100501.jpg",
"http://c.hiphotos.baidu.com/zhidao/pic/item/4a36acaf2edda3cc36b0a48d04e93901203f92c2.jpg",
"http://cdn.duitang.com/uploads/item/201508/12/20150812204048_2sumR.jpeg",
"http://c.hiphotos.baidu.com/zhidao/pic/item/96dda144ad345982f060fa890ef431adcaef84c6.jpg",
"http://img.pconline.com.cn/images/upload/upc/tx/wallpaper/1307/30/c0/23934263_1375169304679.jpg"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉标题栏
setContentView(R.layout.activity_main);
ll_add=(LinearLayout) findViewById(R.id.ll_add);
for (int i = 0; i <img.length; i++) {
ImageView imageView = new ImageView(this);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
100, getResources().getDisplayMetrics());
LinearLayout.LayoutParams layout = new LinearLayout.LayoutParams(
px,px);
layout.setMargins(10,5,0,5); //设置间距
imageView.setLayoutParams(layout); //设置图片宽高
Glide.with(this).load(img[i])
.asBitmap().placeholder(R.drawable.default_logo).into(imageView); //用Glide框架加载图片
imageView.setOnClickListener(onClickListener); //设置点击事件
imageView.setTag(ll_add.getChildCount()); //设置标记
ll_add.addView(imageView);
}
}
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (v instanceof ImageView) {
int tag = (Integer) v.getTag();
final Imagedialog imagedialog = new Imagedialog(
MainActivity.this);
ImageView imageView = (ImageView) imagedialog
.findViewById(R.id.im_gq);
Glide.with(MainActivity.this).load(img[tag])
.asBitmap().into(imageView);
imagedialog.show();
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
imagedialog.dismiss();
}
});
}
}
};
}
预览对话框布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/pop_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:gravity="center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/im_gq"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dp" />
</LinearLayout>
</RelativeLayout>
预览对话框代码:
package com.jiawu.demo;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.media.Image;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
public class Imagedialog extends Dialog {
private Context mContext;
//
public interface KhbfTypeListener {
public void onClick(View view);
}
public Imagedialog(Activity context) {
super(context);
mContext = context;
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getWindow().setGravity(Gravity.BOTTOM);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
// getWindow().setWindowAnimations(R.style.AnimBottom);
getWindow().setGravity(Gravity.CENTER);
final View rootView = getLayoutInflater().inflate(
R.layout.iamge_main_layout, null);
int screenWidth = ((Activity) mContext).getWindowManager()
.getDefaultDisplay().getWidth();
LayoutParams params = new LayoutParams(screenWidth,
LayoutParams.MATCH_PARENT);
ImageView iamge = (ImageView) rootView.findViewById(R.id.im_gq);
// ImageView.setOnClickListener(l)
super.setContentView(rootView, params);
rootView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int height = rootView.findViewById(R.id.pop_layout).getTop();
int y = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_UP) {
if (y < height) {
dismiss();
}
}
return true;
}
});
}
}
清单文件(加访问网络权限:<uses-permission android:name="android.permission.INTERNET" />):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jiawu.demo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:screenOrientation="portrait"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.jiawu.demo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
主界面效果图:
点击预览效果图: