Android imageview上的空指针,don';我不知道如何将它传递给视图
我有一个可以拍照的应用程序,然后我想在拍照时看到那张照片。这样很好,我得到一张图片并保存到存储器中。所以我为它创建了一个名为“activity_image.xml”的视图。但是我得到了一个空指针:Android imageview上的空指针,don';我不知道如何将它传递给视图,android,nullpointerexception,Android,Nullpointerexception,我有一个可以拍照的应用程序,然后我想在拍照时看到那张照片。这样很好,我得到一张图片并保存到存储器中。所以我为它创建了一个名为“activity_image.xml”的视图。但是我得到了一个空指针: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap)' on a null obje
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap)' on a null object reference
setContentView(R.layout.activity_image);
在这里,我尝试将其从我的主要活动传递到imageview,但我不知道如何正确执行此操作:
static final int REQUEST_TAKE_PHOTO = 1;
static final int REQUEST_IMAGE_CAPTURE = 1;
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
private Bitmap mImageBitmap;
private String mCurrentPhotoPath;
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen);
mVisible = true;
mControlsView = findViewById(R.id.fullscreen_content_controls);
mContentView = findViewById(R.id.fullscreen_content);
sButton = findViewById(R.id.sButton);
//final Intent cam = new Intent("android.media.action.IMAGE_CAPTURE");
// Set up the user interaction to manually show or hide the system UI.
mContentView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
toggle();
}
});
sButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
dispatchTakePictureIntent();
}
});
// Upon interacting with UI controls, delay any scheduled hide()
// operations to prevent the jarring behavior of controls going away
// while interacting with the UI.
findViewById(R.id.sButton).setOnTouchListener(mDelayHideTouchListener);
}
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
System.out.println("ERR CANNOT CREATE FILE");
}
// Continue only if the File was successfully created
if (photoFile != null) {
Uri photoURI = FileProvider.getUriForFile(this,
"com.example.android.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
mCurrentPhotoPath = "file:" + image.getAbsolutePath();
return image;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
try {
mImageBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(mCurrentPhotoPath));
mImageView = (ImageView)findViewById(R.id.imageView2);
mImageView.setImageBitmap(mImageBitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
setContentView(R.layout.activity_image);
Activity_image.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/ic_launcher"
android:id="@+id/imageView2"
android:layout_weight="0.95" />
</LinearLayout>
setContentView(R.layout.activity_image);
更换
mImageView.setImageBitmap(mImageBitmap);
mImageView = (ImageView)findViewById(R.id.imageView2);
setContentView(R.layout.activity_image);
与
setContentView(R.layout.activity_image);
编辑:
setContentView(R.layout.activity_fullscreen);
setContentView(R.layout.activity_image);
因此,您的ImageView 2
ImageView应该在activity\u全屏
中。但是什么是activity\u image.xml
?替换
mImageView.setImageBitmap(mImageBitmap);
mImageView = (ImageView)findViewById(R.id.imageView2);
setContentView(R.layout.activity_image);
与
setContentView(R.layout.activity_image);
编辑:
setContentView(R.layout.activity_fullscreen);
setContentView(R.layout.activity_image);
因此,您的ImageView 2
ImageView应该在activity\u全屏
中。但是什么是activity\u image.xml
mImageView.setImageBitmap(mImageBitmap);
mImageView = (ImageView)findViewById(R.id.imageView2);
setContentView(R.layout.activity_image);
到
setContentView(R.layout.activity_image);
您的imageview位于activity_image.xml中,但一旦创建方法使用了activity_fullscreen.xml,则必须在此处使用布局充气器和视图。
例如:视图v;
Imageview image=(Imageview)v.findViewById(R.id.imageView2);
更改此设置
mImageView.setImageBitmap(mImageBitmap);
mImageView = (ImageView)findViewById(R.id.imageView2);
setContentView(R.layout.activity_image);
到
setContentView(R.layout.activity_image);
您的imageview位于activity_image.xml中,但一旦创建方法使用了activity_fullscreen.xml,则必须在此处使用布局充气器和视图。
例如:视图v;
Imageview图像=(Imageview)v.findViewById(R.id.imageView2);
setContentView(R.layout.activity_image);
只需像这样重新格式化代码更改此项:
setContentView(R.layout.activity_image);
只需像这样重新格式化代码更改此项:
setContentView(R.layout.activity_image);
你的问题是:
setContentView(R.layout.activity_image);
mImageView = (ImageView)findViewById(R.id.imageView2); // first set the var
mImageView.setImageBitmap(mImageBitmap); // then set the image view
请检查以下内容:
setContentView(R.layout.activity_image);
setContentView(R.layout.activity_fullscreen); // this should link to the right XML file. At the moment it looks like it doesn't.
你的问题是:
setContentView(R.layout.activity_image);
mImageView = (ImageView)findViewById(R.id.imageView2); // first set the var
mImageView.setImageBitmap(mImageBitmap); // then set the image view
请检查以下内容:
setContentView(R.layout.activity_image);
setContentView(R.layout.activity_fullscreen); // this should link to the right XML file. At the moment it looks like it doesn't.
继续获取空指针:/just clean项目完成并重建后,请参考xml R。layout遇到一些问题,请使它们更正xml,以便删除错误,与setcontentview一起使用。完全忘记了这样做!:)没有问题继续编码!干杯!继续获取空指针:/just clean项目完成后项目和重建请参考xml R.layout遇到一些问题,请更正xml,以便删除错误,使用setcontentview..完全忘记了这样做!:)没有问题继续编码!干杯!继续获取空指针:/Edited the post:)继续获取空指针:/Edited the post:)继续获取空指针:/Can您发布活动中的代码?可能是您没有链接到(右)xml文件…继续获取空指针:/n您可以发布活动中的代码吗?可能是您没有链接到(右)xml文件。。。