博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android实现点击缩略图查看大图
阅读量:6586 次
发布时间:2019-06-24

本文共 1366 字,大约阅读时间需要 4 分钟。

  在项目中需要对缩略图进行大图查看,就类似微信的点击查看大图,只不过这里作只采用了一张图片,没有左右滑动的效果。

 这里的图片是从储存卡中获取,首先得需要该图片的本地地址,然后将本地图片转换成Bitmap,设置获取比例为1.

 

关键代码如下:

public class ShowBigPhoto {

private Context context;
private String path;

public ShowBigPhoto(Context context, String path){
this.context = context;
this.path = path;
}
public void showDetailPhoto(){
// 全屏显示的方法
final Dialog dialog = new Dialog(context, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
ImageView imgView = getView();
dialog.setContentView(imgView);
dialog.show();
// 大图显示之后,点击图片消失
imgView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
}
//设置当前imgView的图片
private ImageView getView() {
ImageView imgView = new ImageView(context);
imgView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
imgView.setImageBitmap(decodeBigPhoto());
return imgView;
}
private Bitmap decodeBigPhoto(){
if (path != null) {
Bitmap bigBitmap;
BitmapFactory.Options opt = new BitmapFactory.Options();
bigBitmap = BitmapFactory.decodeFile(path);
opt.inSampleSize = 1;
opt.inJustDecodeBounds = false;

bigBitmap = BitmapFactory.decodeFile(path, opt);

//iv_photo.setImageBitmap(bigBitmap);
return bigBitmap;
// releaseBitmap();
}
return null;

}

 

在需要进行显示的activity中,new一个ShowBigPhoto,并调用方法showDetailPhoto()即可。

转载于:https://www.cnblogs.com/new-comer/p/5436754.html

你可能感兴趣的文章
kudu
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>
maven 添加阿里云maven镜像
查看>>
对向量、矩阵求导
查看>>
各版本linux下载地址大全
查看>>
CentOS 6.X 关闭不需要的 TTY 方法
查看>>
编程能力的四种境界
查看>>
在windows上秒开应用程序
查看>>
【20180611】MySQL OOM
查看>>
mysql主从复制实现数据库同步
查看>>
面试-1
查看>>
【框架学习】ibatis DAO框架分析
查看>>
ZOJ 3640 Help Me Escape
查看>>
C#下实现的半角转与全角的互转
查看>>
PreparedStatement vs Statement
查看>>
删除windows中的库、家庭组、收藏夹
查看>>
war 宽度变窄
查看>>
set p4 environment in windows
查看>>
自定义指令的参数
查看>>
python实现进度条
查看>>