标签:
public class BitMapUtils {
public static Bitmap zipBitMap(String filePath) {
BitmapFactory.Options options = new BitmapFactory.Options();
//只得到图片的宽和高
options.inJustDecodeBounds = true;
//得到传递过来的图片的信息
BitmapFactory.decodeFile(filePath, options);
//设置图片的压缩比例
options.inSampleSize = computSampleSize(options, 200, 320);
//设置完压缩比酷之后,必须将这个属性改为false
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(filePath,options);
}
private static int computSampleSize(BitmapFactory.Options options, int w, int h) {
int width = options.outWidth;
int height = options.outHeight;
//图片的缩小比例,只要小于等于,就是保持原图片的大小不变
int inSqmpleSize = 1;
if (width > w || height > h) {
int zipSizeWidth = Math.round(width / w);
int zipSizeHeight = Math.round(height / h);
inSqmpleSize = zipSizeWidth < zipSizeHeight ? zipSizeWidth : zipSizeHeight;
}
return inSqmpleSize;
}
}
options.inSampleSize = computSampleSize(options, 200, 320);
int width = imageView.getWidth();
int height = imageView.getHeight();
Display currentDisplay = getWindowManager().getDefaultDisplay();
int dw = currentDisplay.getWidth();
int dh = currentDisplay.getHeight();
public class MainActivity extends AppCompatActivity implements OnClickListener {
private Button button_getImg, button_zipImg;
private ImageView imageView;
private GridView gridView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
initListener();
}
private void initListener() {
button_zipImg.setOnClickListener(this);
button_getImg.setOnClickListener(this);
}
private void init() {
button_getImg = (Button) findViewById(R.id.button_gitImg);
button_zipImg = (Button) findViewById(R.id.button_zipImg);
imageView = (ImageView) findViewById(R.id.imageView);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_gitImg:
Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/1.png");
Toast.makeText(MainActivity.this, "原图的大小" + bitmap.getByteCount(), Toast.LENGTH_SHORT).show();
imageView.setImageBitmap(bitmap);
break;
case R.id.button_zipImg:
Bitmap bitmap1 = BitMapUtils.zipBitMap(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/1.png");
Toast.makeText(MainActivity.this, "压缩的大小" + bitmap1.getByteCount(), Toast.LENGTH_SHORT).show();
imageView.setImageBitmap(bitmap1);
break;
}
}
}
图片压缩--BitmapFactory.Options的使用
标签:
原文地址:http://blog.csdn.net/qq_28946307/article/details/51357154