嗨我ACTION_IMAGE_CAPTURE用于捕获图像使用Intent如下:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(
MediaStore.EXTRA_OUTPUT, (new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + ".jpg"))
);
startActivityForResult(cameraIntent, 0);
Run Code Online (Sandbox Code Playgroud)
我需要将图像存储在SD卡中,并使用该onActivityResult方法检索该图像的路径.我不知道如何获取当前捕获图像的图像路径.
如果有人知道请帮助.
谢谢
首先我知道这是重复的问题,但我没有从图库或相机捕获图像的问题.我创建了虚拟项目以检查我的代码在这里工作正常但是当我在我的项目中使用相同的代码时,它甚至没有工作,即使我没有得到任何错误,一旦我开始活动结果它被取消但我仍然可以看到画廊的图像我可以从相机捕捉图像.
当我检查logcat时,我发现以下警告不知道它为什么会到来以及如何解决这个问题
W/NetworkConnectivityListener(2399): onReceived() called with CONNECTED and Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x10000000 (has extras) }
Run Code Online (Sandbox Code Playgroud)
编辑: - 添加代码
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.camera:
//define the file-name to save photo taken by Camera activity
String fileName = "new-photo-name.jpg";
//create parameters for Intent with filename
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
//imageUri is the current activity attribute, define and save it for later usage (also in onSaveInstanceState)
imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); …Run Code Online (Sandbox Code Playgroud) 我希望通过在FirstActivity中单击按钮Capture捕获后显示图像,并使用SecondActivity在activity_second(布局)中显示图像.
FirstActivity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Button take_photo = (Button) findViewById(R.id.btn_capture);
take_photo.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(i);
}
});
}
Run Code Online (Sandbox Code Playgroud)
布局活动_第一
> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/btn_capture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="21dp"
android:text="Capture" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
SecondActivity
> public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
ImageView view = (ImageView) findViewById(R.id.view_photo);
}
Run Code Online (Sandbox Code Playgroud)
activity_second
> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/view_photo"
android:layout_width="260dp"
android:layout_height="374dp" /> …Run Code Online (Sandbox Code Playgroud)