0
我有一個應用程序,它會拍攝照片並將其保存在文件中。之後,該文件應該被轉換成位圖。我試圖將文件轉換爲位圖和字節數組到位圖,但都在實際設備中崩潰。這裏是我的代碼:解碼文件到位圖崩潰的應用程序
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Bitmap bmp1;
File dir_image2 = new File(Environment.getExternalStorageDirectory()+
File.separator+"Ultimate Entity Detector");
dir_image2.mkdirs();
String path = (Environment.getExternalStorageDirectory()+
File.separator+"Ultimate Entity Detector"+File.separator+"TempGhost.jpg");
File tmpFile = new File(dir_image2,"TempGhost.jpg");
try {
FileOutputStream fos = new FileOutputStream(tmpFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
} catch (IOException e) {
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Toast.makeText(getApplicationContext(),"DoneOP",Toast.LENGTH_LONG).show();
//FOR THE CONVERSION I USE :
bmp1 = BitmapFactory.decodeFile(path, options);//File to bitmap <------
//OR
bmp1 = BitmapFactory.decodeByteArray(data , 0,
data.length,options);//Byte array to bitmap <------
//BUT BOTH CRASH
}
};
我的代碼有什麼問題嗎?有沒有其他方法可以將我在 (FileOutputStream,Byte Array,File)上面的圖像轉換爲位圖?有沒有辦法將文件放在一個imageView中,而不用將其轉換爲位圖?
更新:我測試的應用程序在更多的設備,我發現,它的正常運行對三星Galaxy名聲和星系ÿ提前,但它崩潰的XPERIA T.
感謝兄弟你的函數用xperia T修復了問題T – mremremre1
@ mremremre1:如果它幫助你在該鏈接上得到答案,以便其他人也可以從它。 – Arshu
我還在其他問題上添加了它,旁邊有您的名字。檢查出來http://stackoverflow.com/questions/18289544/taking-screenshot-programmatically-doesnt-capture-the-contents-of-surfaceview(看我的答案代碼的底部) – mremremre1