美文网首页程序员
Android kotlin压缩图片案例

Android kotlin压缩图片案例

作者: Android_开发 | 来源:发表于2019-03-26 23:29 被阅读0次
image image

很应用都有个人信息,个人信息就包含设置头像(很多自己的帅照或者PS之后的美女照就会网上放)如果Android本地图片保存较大,上传到服务器的时候比较耗时,一直加载中,最后有可能上传失败,让帅照上传不成功,导致心情不好,可能APP的评论就是差评,其实头像显示的不是很大,这时候为了性能及用户体验,Android你本地可以上传一张自己先压缩的图片,接下来看看在kotlin实现的图片压缩代码:

一实现图片压缩

class MainActivity : AppCompatActivity() {

    private var path = Environment.getExternalStorageDirectory().absolutePath+"/gnw/wx.png"; //定义路径  var是变量
    private val pathYa = Environment.getExternalStorageDirectory().absolutePath+"/gnw/wx2.png" //也可以使用常量定义

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        img1.setImageResource(R.mipmap.wx)    //不需要使用注解方式直接可以findViewByID 及赋值 是不是很直接
        img2 .setImageResource(R.mipmap.wx)
        img1.setOnClickListener(View.OnClickListener {
            Toast.makeText(this,"监听imageview事件",Toast.LENGTH_LONG).show();
        })

        setListener(img1)
       // bitmapCom1();
        bitmapCom2();

    }

    /**
     * 压缩图片方法1
     */
    fun  bitmapCom1() {
        Toast.makeText(this,"压缩图片",Toast.LENGTH_LONG).show();
         var bitmap: Bitmap;
         bitmap = BitmapFactory.decodeFile(path)
         try {

             var file = File(path)
             var leangth = file.length()
             var bl:Int = ((leangth/(1024*100)+1).toInt())
             var quality = 100/bl
             var  fileOutputStream = FileOutputStream(pathYa)
             bitmap.compress(Bitmap.CompressFormat.PNG, quality, fileOutputStream)

         }catch (e:Exception){
            e.printStackTrace()
         }

    }
    /**
     * 压缩图片方法12
     */
    fun bitmapCom2(){
        var by = ByteArrayOutputStream() //流不关闭是直接追加
        var quality = 100;
        var bitmap: Bitmap;
        bitmap = BitmapFactory.decodeFile(path)
        while (true){
            by.reset()
            bitmap .compress(Bitmap.CompressFormat.PNG,quality,by)
            var size = by.size()
            if (size>100*1024){
                quality -= 2
            }else{
              break
            }
        }

        var  fileOutputStream = FileOutputStream(pathYa)
        bitmap.compress(Bitmap.CompressFormat.PNG, quality, fileOutputStream)
    }


    fun setListener(view:View){
        view.setOnClickListener(View.OnClickListener {
            Toast.makeText(this,"监听imageview事件",Toast.LENGTH_LONG).show();
        })
    }
}

获取更多内容关注公众号:

image image

qxf323

865618770

相关文章

  • Android kotlin压缩图片案例

    很应用都有个人信息,个人信息就包含设置头像(很多自己的帅照或者PS之后的美女照就会网上放)如果Android本地图...

  • 图片压缩

    Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法、比例压缩法(根据路径获取图片并压缩)和比例压缩...

  • Android:图片压缩的几种方式

    1、前言 在Android中,图片的压缩对于内存的优化很重要 通过这篇文章对Android中的几种图片压缩方式进行...

  • 图片压缩

    Android图片压缩常用的有质量压缩、尺寸压缩、采样率压缩以及通过JNI调用libjpeg库来进行压缩(尺寸压缩...

  • 【Android开发基础系列】图片专题

    1 图片编辑处理 1.1 图片裁切 转载自:bitmap的六种压缩方式,Android图片压缩 http://bl...

  • 资源图片优化

    tinypng 在线图片压缩 webP android studio选中图片右键Convert to webP

  • Android

    Android常用图片压缩方式 质量压缩 尺寸压缩 1. 质量压缩 质量压缩通过相应算法进行优化Bitmap的位深...

  • bitmap的六种压缩方式,Android图片压缩

    此处分享一个图片的压缩处理方式 : bitmap的六种压缩方式,Android图片压缩 转载链接,点击查看详情 !

  • Android图片压缩

    1.采样率压缩 采样率压缩是改变了图片的像素,他是通过先读取图片的边,然后在自己设定图片的边,然后根据设定,读取图...

  • android图片压缩

    质量压缩 尺寸压缩 缩放法压缩(matrix) RGB_565法(比ARGB_888少一半) createScal...

网友评论

    本文标题:Android kotlin压缩图片案例

    本文链接:https://www.haomeiwen.com/subject/liiovqtx.html