private List<String> imgPaths = new ArrayList<>(); File file = new File(FILE_PATH); if (file.exists()) { if (mBitmap != null) { mBitmap.recycle(); mBitmap = null; } mBitmap = BitmapFactory.decodeFile(FILE_PATH); // FILE_PATH,爲拍照後獲取的圖片地址 if (mBitmap != null) { Bitmap temp = convertBmp(mBitmap); if (temp != null) { mBitmap.recycle(); mBitmap = temp; } } String newFiltPath = getNewFilePath(mBitmap); imgPaths.add(newFiltPath); // 將翻轉後新圖片的地址,放到列表中,展示在預覽控件中 }
public Bitmap convertBmp(Bitmap bmp) { // 對圖片進行水平翻轉 int w = bmp.getWidth(); int h = bmp.getHeight(); Matrix matrix = new Matrix(); matrix.postScale(-1, 1); // 鏡像水平翻轉 Bitmap convertBmp = Bitmap.createBitmap(bmp, 0, 0, w, h, matrix, true); return convertBmp; } private String getNewFilePath(Bitmap bitmap) { // 然後將翻轉後的圖片,存到本地,並獲取新圖片的地址 String rootDir = ""; try { File outFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), System.currentTimeMillis() + ".jpg"); rootDir = outFile.getAbsolutePath(); outFile.createNewFile(); FileOutputStream outStream = new FileOutputStream(outFile); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream); outStream.close(); } catch (IOException e) { } return rootDir; }