- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
获取resultCode=0且requestCode=2,无法获取带图片的picView。
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
final int CAMERA_CAPTURE = 1;
final int PIC_CROP = 2;
private Uri picUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button captureBtn = (Button)findViewById(R.id.capture_btn);
captureBtn.setOnClickListener(this);
}
/**
* Click method to handle user pressing button to launch camera
*/
public void onClick(View v) {
if (v.getId() == R.id.capture_btn) {
try {
Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(captureIntent, CAMERA_CAPTURE);
}
catch(ActivityNotFoundException anfe){
String errorMessage = "Whoops - your device doesn't support capturing images!";
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
}
/**
* Handle user returning from both capturing and cropping the image
*/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if(requestCode == CAMERA_CAPTURE){
picUri = data.getData();
performCrop();
}
else if(requestCode == PIC_CROP){
Bundle extras = data.getExtras();
Bitmap thePic = extras.getParcelable("data");
ImageView picView = (ImageView)findViewById(R.id.picture);
picView.setImageBitmap(thePic);
}
} else {
String errorMessage = "Whoops - resultCode return: " + resultCode +" requestCode: " + requestCode;
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
/**
* Helper method to carry out crop operation
*/
private void performCrop(){
try {
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(picUri, "image/*");
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, PIC_CROP);
}
catch(ActivityNotFoundException anfe){
String errorMessage = "Whoops - your device doesn't support the crop action!";
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
}
编辑:(添加如下,其中 data.getData() 始终为 null)
final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
final int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 200;
public void onClick(View v) {
if (v.getId() == R.id.capture_btn) {
try {
Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//startActivityForResult(captureIntent, CAMERA_CAPTURE);
startActivityForResult(captureIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
catch(ActivityNotFoundException anfe){
String errorMessage = "Whoops - your device doesn't support capturing images!";
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Image captured and saved to fileUri specified in the Intent
Toast.makeText(this, "Image saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
if (requestCode == CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Video captured and saved to fileUri specified in the Intent
Toast.makeText(this, "Video saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the video capture
} else {
// Video capture failed, advise user
}
}
}
编辑2:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if(requestCode == CAMERA_CAPTURE){
picUri = data.getData();
performCrop();
}
else if(requestCode == PIC_CROP){
Bundle extras = data.getExtras();
Bitmap thePic = extras.getParcelable("data");
ImageView picView = (ImageView)findViewById(R.id.picture);
picView.setImageBitmap(thePic);
}
} else {
String errorMessage = "Whoops - resultCode return: " + resultCode +" requestCode: " + requestCode;
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
Bundle extras = data.getExtras();
Bitmap thePic = extras.getParcelable("data");
ImageView picView = (ImageView)findViewById(R.id.picture);
picView.setImageBitmap(thePic);
}
}
最佳答案
如果 resultCode 为 0,则表示您调用的 Activity 已取消。他们要么按下后退按钮,要么回到此 Activity 。更改是您的实现错误。
关于java - Android - ImageView 如何获取相机图片?其中 resultCode 为 0,requestCode 为 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523751/
我想知道我是否正确理解了 requestCode 和 resultCode 的概念?基本上,我有一个与 Activity 关联的任意整数(requestCode)。例如,在 Notepad tutor
我是 Java 和 Android 新手,但我有一个应用程序可以从相机拍摄照片并将其保存为文件。我可以启动相机并拍照,但在 onActivityResult 中,resultCode 始终为 RESU
我使用请求代码从 MainActivity 调用到 InfomationActivity。但是,当返回 MainActivity 时,它处于非 Activity 状态。这里有什么问题? 在 MainA
当我在 Nouget 版本中使用相机 Intent 时,相机 Intent 完美运行。 我的问题:但是 resultCode (onActivityResult()) 总是返回取消。 注意:相同的代码
我总是用下面的代码得到 ResultCode = 0。 这是我处理setResult的代码 @Override public void onResponse(Call call,
这可能是一个基本问题,但我希望能弄清楚一些。 我想做的是:1) 使用 requestCode 启动一个 Activity ,并处理两个操作onActivityResult,一个使用 RESULT_OK
我开发了一个提示日历应用程序编辑事件的 Android 应用程序。 我使用 startActivityForResult() 打开日历。编辑并保存事件后,onActivityResult() 中的 r
我正在尝试在我的 android 应用程序中使用摄像头进行开发。 问题是相机总是返回结果代码 0,无论我是按完成还是取消。我使用的代码 fragment 如下: protected void star
我的脚本中有以下代码行,它不是直接调用 exe,而是调用一个批处理文件。 Exec(ExpandConstant('{app}\App\bin\migrate.bat'), '', '', sw_sh
我对 onActivityResult 有疑问,无论我在做什么,我都无法获得正确的 resultCode。 我知道有类似的问题,但最后他们没有帮助我,我无法解决 MainActivity: 将打开新
我正在尝试在我的应用程序中包含一个摄像头,用于将文件本地保存在 SD 卡上。相机应用程序启动,但 resultCode 始终为 0。我已将以下权限添加到我的 list 中: 这是我的相机的代码:
当我尝试拍摄照片并将其存储在外部存储器中时,我卡在了一个应用程序上。相机 Intent 有效,但我无法确认拍摄的图像。然后我把onActivityResult改成下面这样监听resultCode。触摸
测试时In-App Updates ,更新下载但安装失败,onActivityResult 中的 resultCode 为 0 (RESULT_CANCELED)。 另外,更新版本不是最新更新到tra
我有一个 fragment 的 Activity ,然后该 fragment 调用某个 Activity ,该 Activity 将为第一个 Activity 提供一些值(value)。我使用 onA
下面是我从别人的例子中找到的两个函数。在检查 resultCode 之前,似乎对我来说效果很好。无论用户是按 OK 还是 Cancel,resultCode 都是零。你能告诉我为什么吗?此代码存在于继
关于类似主题的问题有很多,但在四处搜索后,我没有找到与我的问题相匹配的问题。 我知道如何为结果启动 Intent ,并覆盖 onActivityResult() 来处理这些 Intent ,但出于某种
我想显示ZXING的扫描结果。我将 ZXING 集成到我的 Android 应用程序中,扫描工作正常。现在我想在 TextView 中显示条形码编号结果。我在我的项目中使用 zxing 库。我设置了
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我想尝试来自 firebase 的应用程序邀请 - 不幸的是 onActivityResult 报告 onActivityResult 3。仅使用本文档中的代码:https://firebase.go
我正在启动从图库中挑选图片的 Intent ,但 Intent 总是返回结果代码 RESULT_CANCELED。我尝试了很多不同的代码,但没有任何帮助让我觉得我可能遗漏了一些东西,比如在 Andro
我是一名优秀的程序员,十分优秀!