android 调用系统照相机拍照后获得图片路径

如果在前面设置文件保存的位置,sd卡里会出现两张相同的文件,一个是自己定义的位置,一个是系统照相机默认的保存位置,我现在不想定义2个位置,直接让他保存在系统目录里,在on... 如果在前面设置文件保存的位置, sd卡里会出现两张相同的文件,一个是自己定义的位置,一个是系统照相机默认的保存位置,
我现在不想定义2个位置,直接让他保存在系统目录里,在onActivityResult 里却获得不到拍摄的照片位置。data.getData() 返回的要么是空,要么是假路径。
展开
 我来答
张飞online
推荐于2016-05-21 · TA获得超过483个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:150万
展开全部

  

public class TestCameraActivity extends Activity implements OnClickListener{    private Uri mOutPutFileUri;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button takePiCButton = (Button) this.findViewById(R.id.button1);
        takePiCButton.setOnClickListener(this);
    }

@Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.button1:
   saveFullImage();
   break;

default:
   break;
  }
 }
 
 private void saveFullImage(){
  Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  //文件夹aaaa
  String path = Environment.getExternalStorageDirectory().toString()+"/aaaa";
  File path1 = new File(path);
  if(!path1.exists()){
   path1.mkdirs();
  }
  File file = new File(path1,System.currentTimeMillis()+".jpg");
  mOutPutFileUri = Uri.fromFile(file);
  intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutPutFileUri);
  startActivityForResult(intent, 1);
  
 }
 
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode == 1){
   Uri imageUri = null;
   if(data != null){
    if(data.hasExtra("data")){
     Bitmap thunbnail = data.getParcelableExtra("data");
     //处理缩略图
    }
   }else{
    //处理mOutPutFileUri中的完整图像
   }
   
  }
 }
}
美狐美颜sdk
2024-08-06 广告
美颜SDK推出多个版本的原因有以下几点:1. 满足不同平台的需求:美颜SDK的不同版本可以满足不同平台的运营需求。例如,对于直播平台,需要更多的美颜功能来吸引观众,而视频聊天平台则需要的是精简版的美颜功能。通过提供不同版本的美颜SDK,可以... 点击进入详情页
本回答由美狐美颜sdk提供
haonan4631
2013-04-01
知道答主
回答量:6
采纳率:0%
帮助的人:5.7万
展开全部
为什么不这样做那
Bundle extras = data.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");
这样可以得到一个Bitmap对象,可以利用流存到你想存的位置
追问
不好用
追答
不会吧,现在我做的就是这样用的,没有出现什么问题,要不你在看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天海行者
推荐于2016-03-18 · TA获得超过105个赞
知道答主
回答量:208
采纳率:0%
帮助的人:87万
展开全部
public class TestCameraActivity extends Activity implements OnClickListener{ private Uri mOutPutFileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button takePiCButton = (Button) this.findViewById(R.id.button1);
takePiCButton.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
saveFullImage();
break;

default:
break;
}
}

private void saveFullImage(){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//文件夹aaaa
String path = Environment.getExternalStorageDirectory().toString()+"/aaaa";
File path1 = new File(path);
if(!path1.exists()){
path1.mkdirs();
}
File file = new File(path1,System.currentTimeMillis()+".jpg");
mOutPutFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutPutFileUri);
startActivityForResult(intent, 1);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1){
Uri imageUri = null;
if(data != null){
if(data.hasExtra("data")){
Bitmap thunbnail = data.getParcelableExtra("data");
//处理缩略图
}
}else{
//处理mOutPutFileUri中的完整图像
}

}
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式