因为此代码里面有解释,因此直接上代码:

public classChangeBitmapPixel extendsActivity{
privateButtonbtn;
privateBitmapphoto;
privateImageViewimage;
FileOutputStreamfos= null;
BufferedOutputStreambos= null;
privateByteArrayOutputStreambaos;
@Override
public voidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

image=(ImageView)findViewById(R.id.image);
btn=(Button)findViewById(R.id.button);
btn.setOnClickListener( newOnClickListener(){

@Override
public voidonClick(Viewv){
// TODOAuto-generatedmethodstub
Intenti= newIntent("android.media.action.IMAGE_CAPTURE");
// 如果使用下面注释的代码,将不返回数据给Intent
// i.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(newFile(Environment
// .getExternalStorageDirectory(),"pic.jpg")));
// 启动摄像头并且在拍摄后返回
startActivityForResult(i,10);
}});

}
@Override
protected voidonActivityResult( intrequestCode, intresultCode,Intentdata){
// 两种读取文件的方法
Uriuri=data.getData();
if(uri!= null){
System.out.println("uri不为空");
photo=BitmapFactory.decodeFile(uri.getPath());
System.out.println("uri:"+photo);
}

if(photo== null){
Bundlebundle=data.getExtras();
if(bundle!= null){
photo=(Bitmap)bundle.get("data");
image.setImageBitmap(photo);
// 保存照片
savePic(photo);
System.out.println("photo:"+photo);
} else{
Toast.makeText(ChangeBitmapPixel. this,
"为空",
Toast.LENGTH_LONG).show();
return;
}
}
super.onActivityResult(requestCode,resultCode,data);
}
public voidsavePic(Bitmapbitmap){
// 使用此流读取
baos= newByteArrayOutputStream();
// 第二个参数影响的是图片的质量,但是图片的宽度与高度是不会受影响滴
bitmap.compress(Bitmap.CompressFormat.JPEG,80,baos);
// 这个函数能够设定图片的宽度与高度
// Bitmapmap=Bitmap.createScaledBitmap(bitmap,400,400,true);
// 把数据转为为字节数组
byte[]byteArray=baos.toByteArray();
try{
fos= newFileOutputStream(Environment.getExternalStorageDirectory()+"pic.jpg");
bos= newBufferedOutputStream(fos);
bos.write(byteArray);
} catch(FileNotFoundExceptione){
// TODOAuto-generatedcatchblock
e.printStackTrace();
} catch(IOExceptione){
// TODOAuto-generatedcatchblock
e.printStackTrace();
} finally{
try{
baos.close();
} catch(IOExceptione){
// TODOAuto-generatedcatchblock
e.printStackTrace();
}

}

}

}

更多相关文章

  1. 学习深入理解android第一章
  2. Android(安卓)NDK开发之旅29--C++--list、set、map用法
  3. Android打包剔除指定权限
  4. Android(安卓)实现GIF播放(解码)
  5. Android:网络图片Url 转 Bitmap
  6. ubuntu android 环境变量的配置
  7. android App冷启动优化
  8. android半透叠加对照表
  9. Python +appium 封装desired_caps模块

随机推荐

  1. Android Query使用教程
  2. Android(安卓)Wifi锁之WifiLock
  3. Android(安卓)Studio配置文件修改
  4. android接收和发送短信
  5. android学习笔记之一
  6. Android(安卓)客户端性能优化(魅族资深工
  7. Android本地广播相关操作分析
  8. 修改AVD存放位置
  9. Android系统开发01—Android基本组件
  10. 《Android Studio日志工具Log》