Предотвращение растрового изображения слишком большой, чтобы быть загружены в текстуру Android

? Pratik @ | Original: StackOverFlow
---

Мне нужно, чтобы отобразить исходное изображение в полном экране в виде галереи . Для большого пальца он будет работать отлично и когда я пытаюсь для отображения этого изображения в полноэкранном режиме с оригинального источника она не будет в состоянии отображать . В большинстве случаев, еслиразрешение изображения больше чем 2000, то он будет отображать ошибки растрового изображения слишком большой, чтобы быть загружены в текстуру Android.

Я хочу, чтобы предотвратить это, у меня есть Поиск в Google, но не получает никакого ответа относительно этого.

---

Top 5 ответ

1shem @

Вам не нужно загружать весь файл, потому что он слишком большой и, вероятно, ваш телефон будет не в состоянии показать полные растровые пикселей. Вы должны масштабировать его сначала по устройству размера экрана . Этолучший способ, который я нашел, и она работает очень хорошо :  http://stackoverflow.com/questions/3331527/android-resize-a-large-bitmap-file-to-scaled-output-file

2Minas @

Проверьте этот пример http://developer.android.com/training/displaying-bitmaps/index.html

ImageResizer.decodeSampledBitmapFrom * использовать этот метод, чтобы получить отмастшабированного изображение.

3Gilbert92 @

я только что создали, если еще функция проверки, еслиизображение больше, чем 1M пикселей вотпример кода :

public void onActivityResult(int requestCode, int resultCode, Intent data) {

   if (resultCode == RESULT_OK) {

     if (requestCode == SELECT_PICTURE) {

        Uri selectedImageUri = data.getData();
        selectedImagePath = getPath(selectedImageUri);
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 4;

        Bitmap bitmap = BitmapFactory.decodeFile(selectedImagePath);
        int height = bitmap.getHeight(), width = bitmap.getWidth();

        if (height > 1280 && width > 960){
            Bitmap imgbitmap = BitmapFactory.decodeFile(selectedImagePath, options);
            imageView.setImageBitmap(imgbitmap);

            System.out.println("Need to resize");

        }else {
            imageView.setImageBitmap(bitmap);
            System.out.println("WORKS");
        }