Android开发之图片缩放
白羽 2018-06-27 来源 :网络 阅读 1074 评论 0

摘要:本文将带你了解Android开发之图片缩放,希望本文对大家学Android有所帮助。


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

功能:

· 正常加载图片

· 双击放大

· 手势随意缩放

· 随意拖动查看图片每一个角落

· 结合其他设置可实现翻转

效果图

 Android开发之图片缩放

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=//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. "//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);

    }

 

 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程