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;
    }

 

效果圖:

由效果圖,可以看出,一定比例的綻放會造成圖片失真的,尤其在對圖片縮放後進行高斯模糊,根據看不清楚原圖片的樣子,所以對於要求圖片清晰度不變的情況下,縮放並不是一個好的選擇,雖然它改變了圖片的大小。

 

 

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