[Android开发]-图片压缩(根据屏幕大小进行比例压缩)
2016-09-12 20:50
603 查看
[Android开发]-图片压缩(根据屏幕大小进行比例压缩)
在压缩图片后,将图片保存在外部缓存中。public class MainActivity extends AppCompatActivity { private Bitmap bitmap; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.image_view); // 获取屏幕的宽高 DisplayMetrics mDisplayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(mDisplayMetrics); int screenWidth = mDisplayMetrics.widthPixels; int screenHeight = mDisplayMetrics.heightPixels; // 只编码模式,获取图片的属性,如图片尺寸、类型,但不加载图片 mOptions.inJustDecodeBounds = true; BitmapFactory.decodeResource(getResources(), R.mipmap.image, mOptions); // 得到图片的宽高 int outWidth = mOptions.outWidth; int outHeight = mOptions.outHeight; Log.i("onCreate: ", "------outWidth: " + outWidth + "------outHeight: " + outHeight); // 宽高的缩放比例 int widthScale = Math.round((float) outWidth / screenWidth); int heightScale = Math.round((float) outHeight / screenHeight); // 得到图片的压缩比例 int sampleSize = 0; if (outWidth > outHeight) { sampleSize = widthScale; Log.i("onCreate: ", "------widthScale: " + widthScale); } else { sampleSize = heightScale; Log.i("onCreate: ", "------heightScale: " + heightScale); } if (sampleSize > 1) { mOptions.inSampleSize = sampleSize; // 设置图片的压缩比例 mOptions.inPreferredConfig = Bitmap.Config.ARGB_8888; mOptions.inJustDecodeBounds = false; // 退出只编码模式 bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.image, mOptions); } // 显示压缩后的图片 imageView.setImageBitmap(bitmap); // 将压缩后的图片保存 try { FileOutputStream fos = new FileOutputStream(new File(getExternalCacheDir(), "img.jpg")); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- Android根据屏幕宽度,按比例缩放图片(图片)
- Android 获取屏幕尺寸与密度 遇到一个问题,我的地图浮标图片在WVGA手机上正好,在QVGA上就显的太大,所以我要根据屏幕的不同调整浮标的大小使其在QVGA大小合适。有的同事提出了依据
- android 图片宽度填满屏幕宽度,图片高度根据图片的比例自动匹配,这样就不会拉伸图片
- android 根据屏幕大小自行选择图片
- Android中的图片按比例大小压缩代码
- Android开发全程记录(八)——设置ImageView显示的图片铺满全屏(适应魅族等不常见屏幕比例)
- iOS开发之根据图片宽高等比例压缩图片
- Android 根据屏幕的宽度来设置图片的大小,
- android 根据图片url获取bitmap或者drawable,然后再进行压缩处理
- Android根据屏幕大小加载图片到内存
- 浅谈Android根据屏幕宽度,按比例缩放图片
- Android开发基础 调用相机 系统相册(并对图片进行压缩处理)
- Android应用开发之图片(Bitmap)压缩(一)---------Bitmap与BitmapFactory的认识及图片的存储形式大小的实验
- android根据屏幕宽度,按比例缩放图片
- [Android算法] bitmap 将图片压缩到指定的大小
- Android开发 屏幕大小自适应
- android开发模拟器显示图片大小与真实图片大小不一致问题
- Android编程之Bitmap图片压缩大小
- Android开发技术:Android对图片的压缩读取和保存
- Android心得2.2--第一个应用程序开发过程及屏幕大小与分辨率详解