Я хочу отобразить захваченное изображение из намерения камеры внутри ImageView. Я могу открыть камеру и создать каталог для изображения, но когда я передаю изображение с помощью намерения и попытаюсь его вызвать, изображение не будет отображаться. Это то, что я делаю:Изображение камеры не отображается в ImageView
private static final int REQUEST_CODE = 1;
private ImageView addPicture;
private Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(//setting the view);
addPicture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs(); // <----
File image = new File(imagesFolder, "image_001.jpg");
Uri uriSavedImage = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(imageIntent, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
addPicture = (ImageView) findViewById(R.id.profilepicture_registerone);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
try {
InputStream stream = getContentResolver().openInputStream(data.getData());
bitmap = BitmapFactory.decodeStream(stream);
addPicture.setImageBitmap(bitmap);
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
}
RoundImage image = new RoundImage(bitmap);
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
Toast.makeText(getApplicationContext(), "Bad Image Request. Please Try Again!", Toast.LENGTH_LONG).show();
}
}
}
Мои права:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
И мой ImageView в XML:
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/profilepicture_registerone"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:clickable="true"
android:onClick="addPicture" />
EDIT: Я имел неправильные идентификаторы из-за меня попытки изменить вещи для этого сообщения. Я изменил их обратно на оригинальный идентификатор, чтобы избежать путаницы.
EDIT 2: После дальнейших испытаний я обнаружил, что никакие изображения не установлены внутри метода onActivityResult()
. Я попытался загрузить изображение с возможностью рисования, и это тоже не сработало. Он работал, когда я назвал его внутри onCreate()
.
нашел решение? @solomon Powell – Mano
@ Мано, к счастью, нет. Я даже попробовал загрузить изображение запаса из моей доступной папки в качестве файла изображения внутри 'onActivityResult()', и это тоже не работает. Что странно, так как вызывается OnActivityResults. –
http://stackoverflow.com/a/30977539/4447803, попробуйте этот код, сомневайтесь, спросите меня - он будет работать как с галереей, так и с камерой с урожаем. – Mano