Мы можем создать общий выбор для камеры и галереи как тот же, что и WHATS APP EDIT PROFILE .. [link] I want to make a Dialog Screen Like WhatsApp Profile Photo Dialog Screen ... но проблема возникает в onActivityResult() .. мы можем «Невозможно отличить, выбираем ли мы изображение из галереи или Мы снимали изображение с камеры? так как мы можем сделать различие между ними в onActivityResult()? Любые решения? PLZ Помогите мне, если у вас есть!Диалоговый экран Like WhatsApp Профиль Фото Диалог Экран
2
A
ответ
2
Как запустить единое намерение для выбора изображений из галереи или камеры или любого приложения, зарегистрированного для просмотра файловой системы.
Вместо того, чтобы создать диалог со списком опций Намерение, гораздо лучше использовать Intent.createChooser для того, чтобы получить доступ к графические иконки и короткие имена различных «Камера», «Галерея» и даже сторонние приложения для браузеров файловой системы, такие как «Astro» и т. д.
В этом разделе описано, как использовать стандартное намерение выбора и добавить дополнительные намерения.
private Uri outputFileUri;
private void openImageIntent() {
// Determine Uri of camera image to save.
final File root = new File(Environment.getExternalStorageDirectory() + File.separator + "MyDir" + File.separator);
root.mkdirs();
final String fname = Utils.getUniqueImageFilename();
final File sdImageMainDirectory = new File(root, fname);
outputFileUri = Uri.fromFile(sdImageMainDirectory);
// Camera.
final List<Intent> cameraIntents = new ArrayList<Intent>();
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final PackageManager packageManager = getPackageManager();
final List<ResolveInfo> listCam = packageManager.queryIntentActivities(captureIntent, 0);
for(ResolveInfo res : listCam) {
final String packageName = res.activityInfo.packageName;
final Intent intent = new Intent(captureIntent);
intent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
intent.setPackage(packageName);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
cameraIntents.add(intent);
}
// Filesystem.
final Intent galleryIntent = new Intent();
galleryIntent.setType("image/*");
galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
// Chooser of filesystem options.
final Intent chooserIntent = Intent.createChooser(galleryIntent, "Select Source");
// Add the camera options.
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, cameraIntents.toArray(new Parcelable[]{}));
startActivityForResult(chooserIntent, YOUR_SELECT_PICTURE_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode == RESULT_OK)
{
if(requestCode == YOUR_SELECT_PICTURE_REQUEST_CODE)
{
final boolean isCamera;
if(data == null)
{
isCamera = true;
}
else
{
final String action = data.getAction();
if(action == null)
{
isCamera = false;
}
else
{
isCamera = action.equals(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
}
}
Uri selectedImageUri;
if(isCamera)
{
selectedImageUri = outputFileUri;
}
else
{
selectedImageUri = data == null ? null : data.getData();
}
}
}
}
Или полный пример образец проверить this
Смежные вопросы
- 1. Невозможно изменить Диалоговый экран согласно моему желанию
- 2. Приветственный экран Like Spotify
- 3. Диалог не заполняет экран
- 4. Диалог принимает весь экран ширина
- 5. Диалоговый диалог и диалог действий. Android
- 6. Как отобразить диалоговый фрагмент почти весь экран в Android
- 7. Экран Экран Обновления экрана Медленный, Отложенный экран
- 8. Экран тускнеет, но диалог не отображается
- 9. Сохранять диалог Фрагмент после разблокировки Экран
- 10. Как показать диалог, даже если экран заблокирован?
- 11. Диалог потерял фокус? Весь экран «greyed out»
- 12. Пользовательский диалог открывается во весь экран
- 13. Диалоговый фрагмент с wrap_content, идущий как полный экран. Как сделать это как высоту макета, а не полный экран?
- 14. экран: как включить альтернативный экран?
- 15. Всплывающий экран Android, как в WhatsApp или Telegram
- 16. ActionBar like whatsapp
- 17. Compress video like whatsapp
- 18. Whatsapp like Collapsing Toolbar
- 19. Whatsapp like CircularProgressBar
- 20. Whatsapp-like app
- 21. Tab Bar like WhatsApp
- 22. Facebook профиль Фото Large
- 23. Профиль Фото Загрузить
- 24. Экран (сенсорный экран) Веб-клавиатура
- 25. Как создать чат-экран, похожий на whatsapp в материальном дизайне?
- 26. диалог прогресса для загрузки фото
- 27. Message top window like whatsapp
- 28. Экран загрузки iPhone SDK
- 29. SocialEngine Зенд получать профиль фото
- 30. Показать пользовательский экран onReceivedError
я хочу такой же, как WhatsApp редактирования профиля, где есть общая цель Chooser как для камеры и Gallary !! –
проверьте выше код –
Thanx! Его сработал чувак !! после jst, заменив ACTION_GET_CONTENT на ACTION_PIC .. для галереи (не нужна документация) .. plz +1 к моему вопросу :) –