Intereting Posts
Есть ли способ получить ссылки для всех активных в настоящий момент фрагментов в Activity? Как установить местоположение по умолчанию и уровень масштабирования для google map api v2? Что такое RestrictionPolicy и как заставить его заткнуться? ERROR / веб-консоль: ошибка с нечистотой: слишком много времени, затрачиваемого на обработчик выгрузки Проект Eclipse android не создает пустую активность Удержание камеры возвращает небольшое изображение Поиск и Android NSD-сервис с устройства, отличного от Android Как использовать шаблон Android MVVM с фрагментами? Как Android вычисляет кеш и размер данных? Загрузите плотность для уровня API <15 Удалить тень уведомлений в приложении для Android Статический класс на Java (Android) – используйте или не используйте Почему метод getOAuthAccessToken всегда запускает исключение в twitter4j api? Как использовать MultiChoiceModeListener в ListView с поддержкой и без поддержки? Попытка вызвать метод интерфейса для ссылки на нулевой объект finishComposingText ()

Android: выберите изображение из галереи, затем обведите его и покажите в изображении

Мне действительно нужен этот код, и я искал 3 часа в Интернете, но я не смог найти полный и простой код, и я проверил множество кодов, но некоторые не работали, а другие не были хорошими, пожалуйста, помогите мне с полным и простым Код, спасибо, вы редактируете: у меня есть этот код для выбора изображения, но, пожалуйста, дайте мне полный код для всех вещей, которые я сказал в заголовке, потому что я не могу походить на коды.

btn_choose.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent,"Select Picture"),SELECT_PICTURE); alertDialog1.dismiss(); } }); protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); selectedImagePath1=selectedImagePath; System.out.println("Image Path : " + selectedImagePath); image_capture1.setImageURI(selectedImageUri); } 

Solutions Collecting From Web of "Android: выберите изображение из галереи, затем обведите его и покажите в изображении"

Надеюсь, что этот код поможет вам.

Активность для выбора изображения из галереи.

 import java.io.File; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.util.Log; public class GalleryUtil extends Activity{ private final static int RESULT_SELECT_IMAGE = 100; public static final int MEDIA_TYPE_IMAGE = 1; private static final String TAG = "GalleryUtil"; String mCurrentPhotoPath; File photoFile = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try{ //Pick Image From Gallery Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, RESULT_SELECT_IMAGE); }catch(Exception e){ e.printStackTrace(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode){ case RESULT_SELECT_IMAGE: if (resultCode == Activity.RESULT_OK && data != null && data.getData() != null) { try{ Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); //return Image Path to the Main Activity Intent returnFromGalleryIntent = new Intent(); returnFromGalleryIntent.putExtra("picturePath",picturePath); setResult(RESULT_OK,returnFromGalleryIntent); finish(); }catch(Exception e){ e.printStackTrace(); Intent returnFromGalleryIntent = new Intent(); setResult(RESULT_CANCELED, returnFromGalleryIntent); finish(); } }else{ Log.i(TAG,"RESULT_CANCELED"); Intent returnFromGalleryIntent = new Intent(); setResult(RESULT_CANCELED, returnFromGalleryIntent); finish(); } break; } } } 

Активность для обрезания выбранного изображения:

 public class ImageSelecter extends Activity{ private final int GALLERY_ACTIVITY_CODE=200; private final int RESULT_CROP = 400; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); btn_choose.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Start Activity To Select Image From Gallery Intent gallery_Intent = new Intent(getApplicationContext(), GalleryUtil.class); startActivityForResult(gallery_Intent, GALLERY_ACTIVITY_CODE); } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == GALLERY_ACTIVITY_CODE) { if(resultCode == Activity.RESULT_OK){ picturePath = data.getStringExtra("picturePath"); //perform Crop on the Image Selected from Gallery performCrop(picturePath); } } if (requestCode == RESULT_CROP ) { if(resultCode == Activity.RESULT_OK){ Bundle extras = data.getExtras(); Bitmap selectedBitmap = extras.getParcelable("data"); // Set The Bitmap Data To ImageView image_capture1.setImageBitmap(selectedBitmap); image_capture1.setScaleType(ScaleType.FIT_XY); } } } private void performCrop(String picUri) { try { //Start Crop Activity Intent cropIntent = new Intent("com.android.camera.action.CROP"); // indicate image type and Uri File f = new File(picUri); Uri contentUri = Uri.fromFile(f); cropIntent.setDataAndType(contentUri, "image/*"); // set crop properties cropIntent.putExtra("crop", "true"); // indicate aspect of desired crop cropIntent.putExtra("aspectX", 1); cropIntent.putExtra("aspectY", 1); // indicate output X and Y cropIntent.putExtra("outputX", 280); cropIntent.putExtra("outputY", 280); // retrieve data on return cropIntent.putExtra("return-data", true); // start the activity - we handle returning in onActivityResult startActivityForResult(cropIntent, RESULT_CROP); } // respond to users whose devices do not support the crop action catch (ActivityNotFoundException anfe) { // display an error message String errorMessage = "your device doesn't support the crop action!"; Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); toast.show(); } } } 

Я размещаю здесь рабочий код:

 private static final int PICK_FROM_GALLERY = 2; buttonGallery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); //******call android default gallery intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); //******code for crop image intent.putExtra("crop", "true"); intent.putExtra("aspectX", 0); intent.putExtra("aspectY", 0); try { intent.putExtra("return-data", true); startActivityForResult( Intent.createChooser(intent,"Complete action using"), PICK_FROM_GALLERY); } catch (ActivityNotFoundException e) {} } }); } 

Внутри onActivityResult

 if (requestCode == PICK_FROM_GALLERY) { Bundle extras2 = data.getExtras(); if (extras2 != null) { Bitmap photo = extras2.getParcelable("data"); imgview.setImageBitmap(photo); } } 

Попробуйте это.

У меня немного другой подход

Я использую внешнюю библиотеку для обработки моих загрузок, библиотека загрузит ее в фоновом режиме

Эти настройки обеспечивают хорошую производительность для списка с большим количеством элементов и быстрой прокруткой 🙂

 DisplayImageOptions options=new DisplayImageOptions.Builder() .cacheOnDisk(true) .imageScaleType(ImageScaleType.EXACTLY) .considerExifParams(true) .bitmapConfig(Bitmap.Config.RGB_565) .imageScaleType(ImageScaleType.EXACTLY) .build(); ImageLoader.getInstance().displayImage(url, imageView, options);