Prevenire bitmap troppo grande per essere caricato in un androide trama

? Pratik @ | Original: StackOverFlow
---

Ho bisogno di visualizzare l'immagine originale a schermo intero in formato galleria . Per il pollice sarà funziona perfettamente e quando cerco di visualizzare l'immagine a schermo intero con la fonte originale non sarà in grado di visualizzare . Nella maggior parte dei casi, se la risoluzione dell'immagine è maggiore di 2000, allora esso visualizzerà errore bitmap troppo grande per essere caricato in un android texture.

Voglio evitare questo, ho ricerca di Google, ma non ricevendo alcuna risposta riguardo a questa .

---

Top 5 Risposta

1shem @

Non è necessario caricare l' intera immagine, perché è troppo grande e probabilmente il telefono non è in grado di mostrare il pieno bitmap pixel . È necessario scalare per primo in base alle dimensioni dello schermo del dispositivo . Questo è il metodo migliore che ho trovato e funziona abbastanza bene :  http://stackoverflow.com/questions/3331527/android-resize-a-large-bitmap-file-to-scaled-output-file

2Minas @

Dai un'occhiata a questo esempio http://developer.android.com/training/displaying-bitmaps/index.html

ImageResizer.decodeSampledBitmapFrom * utilizzare questo metodo per ottenere l'immagine ridimensionato .

3Gilbert92 @

Ho appena creato un altro, se la funzione per controllare se l'immagine è più grande di 1M pixel ecco il codice di esempio :

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");
        }