android三种载入图片方式
16lz
2022-01-23
package com.example.aa;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapFactory.Options;import android.util.FloatMath;/** * 载入图片的方法 * * @author Administrator * */public class CompressPicture {// 直接载入图片public static Bitmap getBitmap(String path) {Bitmap bt = BitmapFactory.decodeFile(path);return bt;}// 指定大小載入圖片public static Bitmap getBitmap(String path, int size) {Options op = new Options();op.inSampleSize = size;Bitmap bt = BitmapFactory.decodeFile(path, op);return bt;}// 按寬高壓縮載入圖片public static Bitmap getBitmap(String path, int width, int heigh) {Options op = new Options();op.inJustDecodeBounds = true;Bitmap bt = BitmapFactory.decodeFile(path, op);int xScale = op.outWidth / width;int yScale = op.outHeight / heigh;op.inSampleSize = xScale > yScale ? xScale : yScale;op.inJustDecodeBounds = false;bt = BitmapFactory.decodeFile(path, op);return bt;}// 按寬高壓縮載入圖片方法2public static Bitmap getBitmap2(String imageFilePath, int displayWidth,int displayHeight) {BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();bitmapOptions.inJustDecodeBounds = true;Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bitmapOptions);// 编码后bitmap的宽高,bitmap除以屏幕宽度得到压缩比int widthRatio = (int) FloatMath.ceil(bitmapOptions.outWidth/ (float) displayWidth);int heightRatio = (int) FloatMath.ceil(bitmapOptions.outHeight/ (float) displayHeight);if (widthRatio > 1 && heightRatio > 1) {if (widthRatio > heightRatio) {// 压缩到原来的(1/widthRatios)bitmapOptions.inSampleSize = widthRatio;} else {bitmapOptions.inSampleSize = heightRatio;}}bitmapOptions.inJustDecodeBounds = false;bmp = BitmapFactory.decodeFile(imageFilePath, bitmapOptions);return bmp;}}
更多相关文章
- Android如何从服务器获取图片
- Android:Gallery
- 三步搞定:Vue.js调用Android原生操作
- Android(安卓)--- 图片处理的方法
- Android窗口机制(一)——Window,PhoneWindow,DecorView理解
- 在Android(安卓)7.0上PopupWindow.showAsDropDown不起作用的解决
- Android【防抖操作的工具类】
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用