package com.example.ggq.scalecompressbitmapstudy; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Build; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Display; import android.widget.ImageView; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; public class MainActivity extends AppCompatActivity { private ImageView image_view; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image_view = findViewById(R.id.image_view); //创建Options BitmapFactory.Options options = new BitmapFactory.Options(); //只加载宽高,不加载内容 options.inJustDecodeBounds = true; BitmapFactory.decodeFile("/storage/emulated/0/Pictures/Screenshots/picture.jpg",options); //获取图片的宽高 int outWidth = options.outWidth; int outHeight = options.outHeight; //获取手机屏幕的宽高 Display display = getWindow().getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); //定义一个默认的比率 int scale = 0; int scaleX = outWidth/width; int scaleY = outHeight/height; scale = scaleX>scaleY?scaleX:scaleY; options.inSampleSize=scale; options.inJustDecodeBounds = false; //-1ac747aba7b58c8c.jpg Bitmap bitmap = BitmapFactory.decodeFile("/storage/emulated/0/Pictures/Screenshots/picture.jpg",options); int size = getBitmapSize(bitmap); Log.d(TAG, "onCreate: "+size); image_view.setImageBitmap(bitmap); } /** * 计算图片的大小(1596440B) * @param bitmap * @return */ public int getBitmapSize(Bitmap bitmap){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ //API 19 return bitmap.getAllocationByteCount(); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1){//API 12 return bitmap.getByteCount(); } else { return bitmap.getRowBytes() * bitmap.getHeight(); //earlier version } } }
图片的二次采样
猜你喜欢
转载自blog.csdn.net/weixin_42470335/article/details/81001141
今日推荐
周排行