android图片大小优化-缩放改变大小

代码地址:https://github.com/zhangjinself/QQReadBg

android 图片加载过多会引起oom异常,所以大多数的时候我们需要和图片打交道,那我们需要怎么样来处理图片比较多的情况呢,最近在处理图片,突然想到了一种情况,如果是图片被缩放了,是否会改变图片的大小呢,于是作了以下实验

试验思路,通过一个拖动的seekBar来改变图片的缩放的大小,通过不断的改变progress,来控制图片的大小

代码如下

 seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                if(progress>0) {
                    newBitmap=getImageSize2(progress);
                }
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
  /**
     * 根据缩放比例来改变图片大小
     * @param scall
     * @return
     */
    private Bitmap getImageSize2(int scall){
        Bitmap srcBitmap= BitmapFactory.decodeResource(getResources(), R.mipmap.bg);
        Log.i("byte","srcbyte "+srcBitmap.getByteCount());

        Bitmap newBitmap =Bitmap.createBitmap(
                srcBitmap.getWidth()/scall,srcBitmap.getHeight()/scall, Bitmap.Config.ARGB_8888);
        Canvas canvas =new Canvas(newBitmap);
        //同时缩放会显示原图大小
        canvas.scale((1f/scall),(1f/scall));
        canvas.drawBitmap(srcBitmap,0,0,new Paint());
        Log.i("byte","newBitmap "+newBitmap.getByteCount());
        return newBitmap;
    }

 

效果图:

由效果图,可以看出,一定比例的绽放会造成图片失真的,尤其在对图片缩放后进行高斯模糊,根据看不清楚原图片的样子,所以对于要求图片清晰度不变的情况下,缩放并不是一个好的选择,虽然它改变了图片的大小。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章