Android图片处理--缩放

PS:在开发中我们会遇到一些图片处理问题,比如说缓存图片了、限制图片大小了、查看图片了等。上一篇文章介绍了图片的全景效果查看,今天介绍一个图片缩放,我们如果有时间的话,可以自己写一个属于自己的库,里面会用到view的按压、事件分发、手势等一些知识,如果没有时间或者不会其他的方法,不妨来看看这个PhotoView。这是一个图片缩放库,对于这样的还有GitView等,下面我就介绍一些用法。

功能:

  • 正常加载图片
  • 双击放大
  • 手势随意缩放
  • 随意拖动查看图片每一个角落
  • 结合其他设置可实现翻转

1:本地图片加载

<ImageView
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:id="@+id/id_loc"
        android:scaleType="fitXY"
        />
<uk.co.senab.photoview.PhotoView
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:src="@mipmap/ic_launcher"
        android:id="@+id/id_myimg"/>

第一种方法:

//本地加载方法一
       // 设置图片
       Drawable bitmap = getResources().getDrawable(R.mipmap.ic_launcher);
       loc.setImageDrawable(bitmap);
 
       // 连接在photoview中
       PhotoViewAttacher mAttacher = new PhotoViewAttacher(loc);
       mAttacher.update();//更新

第二种

//本地方法加载二
        PhotoViewAttacher mAttacher;
       mAttacher = new PhotoViewAttacher(loc);
       iv.setImageBitmap(bitmap);
        Glide.with(this).load(R.mipmap.ic_launcher).asBitmap().into(loc);
        mAttacher.update();

2:网络图片加载

对于网络也是可以用ImageView和PhotoView两种

把ImageView或者PhotoView的对象名直接添加到display中就OK 了。

//加载网络图片
ImageLoader loader= ImageLoader.getInstance();
loader.init(ImageLoaderConfiguration.createDefault(ImageTest.this));//loader初始化
loader.displayImage("https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1529211252&di=1414331e22239ecb5730cbbd0f3793eb&src=http://pic154.nipic.com/file/20180114/26629113_090329120799_2.jpg",loc);//展示图片

下面我们可以看一下源码,其实他也是继承了ImageView

/**
     * Adds display image task to execution pool. Image will be set to ImageView when it's turn. <br/>
     * Default {@linkplain DisplayImageOptions display image options} from {@linkplain ImageLoaderConfiguration
     * configuration} will be used.<br />
     * <b>NOTE:</b> {@link #init(ImageLoaderConfiguration)} method must be called before this method call
     *
     * @param uri       Image URI (i.e. "http://site.com/image.png", "file:///mnt/sdcard/image.png")
     * @param imageView {@link ImageView} which should display image
     * @throws IllegalStateException    if {@link #init(ImageLoaderConfiguration)} method wasn't called before
     * @throws IllegalArgumentException if passed <b>imageView</b> is null
     */
    public void displayImage(String uri, ImageView imageView) {
        displayImage(uri, new ImageViewAware(imageView), null, null, null);
    }

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hightopo

HTML5矢量实现文件上传进度条

1704
来自专栏刘望舒

Android启动页黑屏及最优解决方案

相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页。那么这个黑屏或者白屏到底是...

763
来自专栏Sorrower的专栏

界面无小事(六):来做个好看得侧拉菜单!

932
来自专栏帮你学MatLab

期刊图片的输出

期刊图片 下载地址:http://www.mathworks.se/matlabcentral/fileexchange/727 也可在文后下载 详细介绍见...

35710
来自专栏雪胖纸的玩蛇日常

Vue+koa2开发一款全栈小程序(8.图书列表页)

在src/components/BookList.vue中给row加上text-primary类

864
来自专栏宋凯伦的技术小栈

Android - 页面返回上一页面的三种方式

  今年刚刚跳槽到了新公司,也开始转型做Android,由此开始Android的学习历程。   最近在解很多UI的bug,在解bug过程中,总结了在UI的实现过...

1858
来自专栏hightopo

基于HT for Web矢量实现HTML5文件上传进度条

892
来自专栏Jerry的SAP技术分享

ABAP的Package interface, 安卓的manifest.xml和Kubernetes的Capabilities

事务码SE21创建ABAP包接口。这是ABAP基于包层面的访问控制实现逻辑。包里可以存储很多ABAP对象。如果开发人员想将某些对象声明为包外程序也能访问,可以将...

974
来自专栏跟着阿笨一起玩NET

C#自定义开关按钮控件--附带第一个私活项目截图

进入智能手机时代以来,各种各样的APP大行其道,手机上面的APP有很多流行的元素,开关按钮个人非常喜欢,手机QQ、360卫士、金山毒霸等,都有很多开关控制一些操...

401
来自专栏向治洪

制作.9.png

1. PNG格式。       在这里不过多的讨论PNG格式的定义问题。但是.9.PNG确实是标准的PNG格式,只是在最外面一圈额外增加1px的边框,这个1p...

2185

扫码关注云+社区