配置photoview-library-1.2.2.jar 到libs

photoview-library-1.2.2.jar 下载地址  http://pan.baidu.com/s/1nviEKtj

MainActivity

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;import uk.co.senab.photoview.PhotoView;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener{private PhotoView mPhotoView;private String img;private Bitmap bitmap;/*** 默认文件保存路径*/private static final String SAVE_PIC_PATH = Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)? Environment.getExternalStorageDirectory().getAbsolutePath() : "/mnt/sdcard";//保存到SD卡private static final String SAVE_REAL_PATH = SAVE_PIC_PATH + "/good/savePic";//保存的确切位置@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}@SuppressLint("HandlerLeak")private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 1) {mPhotoView.setImageBitmap(bitmap);}}};private void init() {mPhotoView = (PhotoView) findViewById(R.id.iv_photo);
//        img = getIntent().getStringExtra("image");img = "http://p1.pstatp.com/origin/9e000062f3b52ea52f4";TextView textView = (TextView)findViewById(R.id.textView1);textView.setOnClickListener(this);Log.v("lgq","图片保持。。。。。。。。"+img);new Thread(runnable).start();}Runnable runnable = new Runnable() {@Overridepublic void run() {try {bitmap = ((BitmapDrawable) loadImageFromUrl(img)).getBitmap();Message msg = new Message();msg.what = 1;handler.sendMessage(msg);} catch (IOException e) {e.printStackTrace();}}};private static Drawable loadImageFromUrl(String url) throws IOException {URL m = new URL(url);InputStream i = (InputStream) m.getContent();return Drawable.createFromStream(i, "src");}//保存方法private void saveFile(Bitmap bm, String fileName) throws IOException {String subForder = SAVE_REAL_PATH;File foder = new File(subForder);if (!foder.exists()) foder.mkdirs();File myCaptureFile = new File(subForder, fileName);Log.v("lgq","图片保持。。。。。。。。"+myCaptureFile);Log.v("lgq","图片保持。。。。。getPath。。。"+myCaptureFile.getPath());if (!myCaptureFile.exists()) myCaptureFile.createNewFile();BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);bos.flush();bos.close();
//        Toast.bottomToast("已保存在/good/savePic目录下", PhotoScanActivity.this);//发送广播通知系统Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);Uri uri = Uri.fromFile(myCaptureFile);intent.setData(uri);this.sendBroadcast(intent);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.textView1:try {saveFile(bitmap, System.currentTimeMillis() + ".jpg");} catch (IOException e) {e.printStackTrace();}break;default:break;}}}

添加权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.INTERNET" />

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#00050B"android:orientation="vertical"><LinearLayoutandroid:layout_height="45dp"android:layout_width="fill_parent"android:gravity="center"android:orientation="horizontal"><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="保存" /></LinearLayout><uk.co.senab.photoview.PhotoViewandroid:id="@+id/iv_photo"android:layout_width="fill_parent"android:layout_height="fill_parent" /></LinearLayout>

改进版:https://blog.csdn.net/meixi_android/article/details/82801273

android 查看图片、保存图片相关推荐

  1. Android 查看图片的经纬度

    第一步随便找个权限框架 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /& ...

  2. Android 查看图片的位置信息

    图片信息都保存在文件头部,以 Exif (Exchangeable image file format 可交换图像文件格式)格式保存,包含图片位置信息.在拍照时如果开启记录位置则可以获取到相应信息.获 ...

  3. Android Camera开发系列(下)——自定义Camera实现拍照查看图片等功能

    Android Camera开发系列(下)--自定义Camera实现拍照查看图片等功能 Android Camera开发系列(上)--Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片 上 ...

  4. android html图片点击事件,Android TextView加载HTMl图文之添加点击事件和查看图片

    前言 用TextView显示Html图文,每一个需求都是需要探索的,不再是简单的添加点击事件就可以了. 1.如何添加点击事件 这里要使用上在Html.forHtml()方法中的第四个参数:Html.T ...

  5. android 不压缩保存图片格式,Android中图片的压缩方法

    Bitmap Android中图片是以Bitmap(位图)形式存在,位图常见的文件格式有:.bmp .jpg .png .gif . Bitmap的大小计算 = 图片的长度图片的宽度单位像素所占用的字 ...

  6. Android使用ACTION_VIEW查看图片和视频

    Android使用ACTION_VIEW查看图片和视频 一.目标 二.实现方案 三.最终代码 四.过程回顾 五.接下来 六.Finally 神马笔记已经实现在笔记中插入图片和视频,但是不能全屏查看. ...

  7. android仿微信头像点击放大查看,仿微信查看图片(带大小图切换查看)

    之前一直想仿微信朋友圈那样做个图片查看,但是看了网上很多demo都觉得比较简单,少了从小图切换到大图的加载过程,都只是在所有预览里加载大图,点击进去也是加载大图,于是在网上下载了别人的demo自己修改 ...

  8. android 图片大小判断,Android列表查看图片大小

    我的列表视图中有一个问题,它包含一个ImageView和每个项目的几个TextView.Android列表查看图片大小 更多或更少的,有TextViews的两条线和一个ImageView的(XX)应该 ...

  9. Android多媒体功能开发(4)——调用系统Activity拍照、选择图片、查看图片、裁剪图片

    一.拍照 拍照界面就是调用系统照相机,动作为MediaStore.ACTION_IMAGE_CAPTURE.生成的照片有三种返回方式: 在调用拍照应用的Intent中通过EXTRA_OUTPUT属性设 ...

最新文章

  1. 以假乱真的“人造脸”,能骗过面部识别吗?
  2. React ES6组件里绑定this的三种方式
  3. PyTorch 和 Tensorflow 学哪个?上手简单的PyTorch考虑一下!
  4. 共享两个有用的网页布局表格 【有用】
  5. python list根据值返回位置
  6. UDP与TCP对比,TCP保证可靠性传输的详细说明
  7. 华为澄清:公司副总裁未发表中美技术还差两万五千里表述
  8. 鸭子类型:一切都是为了复用
  9. iOS在app里面跳转到系统的设置界面
  10. rpg制作大师2003_RPG制作大师MV 我们一起做游戏(十四)
  11. Java学习资料-java基本数据类型
  12. 【安全测试工具】Drozer介绍及使用
  13. Python 将中文大写数字转为阿拉伯数字
  14. python文件同时读写_python可以同时对文件进行读写操作吗
  15. 软件测试 - 软件测试流程(完整版)避免当背锅侠,测试人的生存......
  16. 【无人机三维路径规划】基于A算法解决三维路径规划问题含危险障碍地形含Matlab源码
  17. 电路——判断电压源和电流源是发出还是吸收功率
  18. 分布式学习(6)etcd@3@ API v3 gRPC_range,put,deleterange
  19. 学习Nginx看这篇就够了
  20. 黑马程序员前端实战项目---PC端品优购(下)

热门文章

  1. 前端学习(2591):刷新页面vuex消失
  2. 前端学习(1810):前端调试之css装饰cursor
  3. 前端学习(1385):多人管理项目5抽离
  4. 前端学习(1155):常量const03
  5. 前端学习(795):基本包装类型
  6. 前端学习(773):内置对象介绍
  7. 前端学习(554):node实现登录和注册第二部分代码
  8. 前端学习(541):node得优势
  9. 前端学习(359):svn服务器配置金和客户端安装
  10. js udp通信_nodejs源码分析第十九章 -- udp模块