android bitmap篇--奇怪的问题,不知原因

当我尝试用下面代码把一个bitmpa写入文件的时候,发生了一件事情

public void onPictureTaken(byte[] data, Camera camera) {
			// 根据拍照所得到的数据创建位图
			Bitmap bm = BitmapFactory.decodeByteArray(data, 0,
					data.length);
			//缩放图片到100*100大小
//			bm = BitmapUtil.scaleBitmap(bm, ConstantValue.ConstantInt.PICTURE_WIDTH, ConstantValue.ConstantInt.PICTURE_HEIGHT);
//			long time = System.currentTimeMillis();
			String fileName;
			try {
//				String fileName = Environment.getExternalStorageDirectory()+ "/meCamera/test.jpg";
                fileName = FileUtil.getAbsPhoneFileName("3", 2);
				File file1 = new File(fileName);
				FileOutputStream outStream = null;
				// 打开指定文件对应的输入流
				outStream = new FileOutputStream(file1);
				// 把位图输出到指定文件中
				boolean isSuccess = bm.compress(CompressFormat.PNG, 100,
						outStream);
				Log.i("xxx", "isSuccess = " + isSuccess);
				if (isSuccess) {

					Toast.makeText(getActivity(), "保存成功", Toast.LENGTH_SHORT)
							.show();
				} else {
					Toast.makeText(getActivity(), "保存失败", Toast.LENGTH_SHORT)
							.show();
				}
				outStream.close();
				//发送消息,图片已经处理完毕
				Message msg = Message.obtain();
				msg.what = 0;
				msg.obj = fileName;
				handler.sendMessage(msg);
				EventBus.postEvent(ConstantValue.ConstantString.EVENTBUS_MESSAGE_PREDICT, fileName);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				Toast.makeText(getActivity(), "保存失败,请检查SDCard",
						Toast.LENGTH_SHORT).show();
				Log.i("xxx", "IOException = " + e);
			}
			// 重新浏览
			camera.stopPreview();
			camera.startPreview();
			isPreview = true;
		}

被写入的文件越来越大,打开一看,发现,图片还是原来的图片。唯一的解释就是在追加,而不是重写


我改了这一句,结果奇葩了

				outStream = new FileOutputStream(file1,false);

大小变小了,说明不是追加

但是打开图片是先显示之前的图片,再一格一格消失,显示后来的图片,说明不是覆盖



然后神奇的事情发生了,我把图片删掉,再运行程序,重写成功

我了个去去去

之前是追加+重写,就是说重写追加部分,最初始部分是一只留着的,

删掉在再运行就是直接重写所有内容,,,

我了个去去去去去去

好吧,手机问题,只能归结于这个原因,


所以小品牌的手机千万不要买,想我买这个小可乐,尼玛,真不可乐









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值