Мое приложение должно фотографировать и выводить на экран. Сделал все как в примере здесь. В итоге у меня создается папка, в нее заносится фотография, но не выводится на экран.
Пробовал получать URI моей фотографии и через URI вставлять в ImageView
- все равно не работает.
Ставил логи, по логам понял что ошибка где-то в onActionResult
.
public class User extends AppCompatActivity implements View.OnClickListener {
final String LOG_TAG = "myLogs";
File directory;
final int TYPE_PHOTO = 1;
final int REQUEST_CODE_PHOTO = 1;
Uri imgAddress;
ImageView ivPhoto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
createDirectory();
ivPhoto = (ImageView) findViewById(R.id.ivPhoto);
Log.d(LOG_TAG, "onCreate???");
}
private void createDirectory() {
directory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Meassure Preassure Pic");
if (!directory.exists())
directory.mkdirs();
Log.d(LOG_TAG, "DIRECTORY");
}
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if (requestCode == REQUEST_CODE_PHOTO) {
if (resultCode == RESULT_OK) {
if (intent == null) {
Log.d(LOG_TAG, "Intent is null");
} else {
Log.d(LOG_TAG, "Photo uri: " + intent.getData());
Bundle bndl = intent.getExtras();
if (bndl != null) {
Object obj = intent.getExtras().get("data");
if (obj instanceof Bitmap) {
Bitmap bitmap = (Bitmap) obj;
Log.d(LOG_TAG, "bitmap " + bitmap.getWidth() + " x " + bitmap.getHeight());
ivPhoto.setImageBitmap(bitmap);
}
}
}
} else if (resultCode == RESULT_CANCELED) {
Log.d(LOG_TAG, "Canceled");
}
}
}
private Uri generatefileURI(int type) {
File file = null;
switch (type) {
case TYPE_PHOTO:
file = new File(directory.getPath() + "/" + "photo_" + System.currentTimeMillis() + ".jpg");
break;
}
Log.d(LOG_TAG, "fileName= " + file);
imgAddress = Uri.fromFile(file);
Log.d(LOG_TAG, "moi pyt' " + imgAddress.toString());
return Uri.fromFile(file);
}
public void onClickPhoto(View view) {
Log.d(LOG_TAG, "ONCLICKSTART");
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, generatefileURI(TYPE_PHOTO));
startActivityForResult(i, REQUEST_CODE_PHOTO);
ivPhoto.setImageURI(imgAddress);
}
@Override
public void onClick(View view) {
}
}
Такой подход старый и уже не работает. Нельзя передавать Bitmap
в intent
. У intent
есть ограничения по размеру. Сейчас надо делать фото и передавать путь к этой фотографии. В onActivityResult
доставать из intent
этот путь и по нему загружать фото в ImageView
Посмотрите на этот пример.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Я пишу игру на Java, (с использованием движка Slick2D и библиотеки MarteEngine, если это важно), и реализуя свой UI столкнулся с появлением отступов слева...
Есть класс Animal и сабкласс Cat, хочу, чтоб Cat принимал имя и ограничение на максимальное расстояние для бега
собственно сабж, как из обычного класса использовать @Inject? как я понимаю для этого класс должен находится контексте или иными словами контекст...
Как выполнить вывод всех элементов из ячейки массива объектов? Допустим, если мне нужно имя, то пишу arr[0]name