在我们日常使用app的时候,很多时候在个人主页有这样一个功能,编辑个人资料的时候,单击头像可以查看头像,并且图片会被放大,效果如下所示:
那么在Android里面我们应该怎么实现这个效果呢?其实很简单,我们只需要使用Dialog。那什么是Dialog呢?
Dialog(对话框)是 Android 中的一个界面组件,用于在当前活动的上下文中显示一个模态窗口。它通常用于显示警告、确认、信息提示等用户交互的消息或操作,我们这里就是使用它来装载我们被放大的图片。具体实现代码如下
private void bigImageLoader(Bitmap bitmap){
final Dialog dialog = new Dialog(getActivity());//创建一个对话框对象 dialog,用于显示大图
ImageView image = new ImageView(getContext());//创建一个 ImageView 对象 image,用于显示加载的大图。
image.setImageBitmap(bitmap);
dialog.setContentView(image);//将 ImageView 设置为对话框的内容视图,这样大图就会显示在对话框中
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();
image.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
dialog.cancel();//当用户点击大图时,取消对话框的显示,关闭大图显示
}
});
}
其中有这样一句代码
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
这句代码的作用就是设置对话框的背景为透明,使得对话框周围没有边框,突出显示大图。以下是对比图:(左图是写了这句代码,右图是没写这句代码)
写完这个方法之后我们只需要再到点击事件中调用这个方法就行啦!
imageView25.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取ImageView的Bitmap
bigImageLoader(((BitmapDrawable)imageView25.getDrawable()).getBitmap());
}
});
我是写在fragment里面,在activity里面我并没有尝试过,但是根据方法的编写应该都是可以实现的,有兴趣的话大家可以去试试哦~