// 压缩图片功能
private void compress(Bitmap bmp) {
// TODO Auto-generated method stub
BitmapFactory.Options factory = new BitmapFactory.Options();
factory.inJustDecodeBounds = true;// 当为true时 允许查询图片不为 图片像素分配内存
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
// 得到屏幕的长和宽
int screenWidth = dm.widthPixels; // 水平分辨率
int screenHeight = dm.heightPixels; // 垂直分辨率
// 得到图片的长和宽
int picWidth = bmp.getWidth();
int picHeight = bmp.getHeight();
// 计算缩放率,新尺寸除原始尺寸
float scaleWidth = ((float) screenWidth) / picWidth;
float scaleHeight = ((float) screenHeight) / picHeight;
// 创建操作图片用的matrix对象
Matrix matrix = new Matrix();
// 缩放图片动作
matrix.postScale(scaleWidth, scaleHeight);
// 新得到的图片是原图片经过变换填充到整个屏幕的图片
Bitmap picNewRes = Bitmap.createBitmap(bmp, 0, 0, picWidth, picHeight,
matrix, true);
// 利用Bitmap位图对象生成缩略图
bmp = ThumbnailUtils.extractThumbnail(picNewRes, 100, 100);
putBitmapToActivity(bmp);
}
private void putBitmapToActivity(Bitmap bmp) {
LinearLayout pictures = (LinearLayout) findViewById(R.id.main_company_submission_horizontalScrollView);
ImageView imageView = new ImageView(this);
imageView.setLayoutParams(new LayoutParams(100, 100));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageBitmap(bmp);
pictures.addView(imageView);
}
这个方法就可以完成100*100的缩略图并把放在activity中。如果有不同意见,欢迎,我们交流交流!
开发日记(2):缩略图如何制作?
最新推荐文章于 2021-01-29 20:10:43 发布