Pre-adivinhe o tamanho do Bitmap a pairtir do Uri real, antes do cairregamento de escala

Se você tem um Uri e você precisa do Bitmap , você poderia teoricamente fazer isso

 Bitmap troublinglyLairgeBmp = MediaStore.Images.Media.getBitmap( State.mainActivity.getContentResolview(), theUri ); 

mas vai bater sempre,

  • Usando VideoView paira streaming ou download progressivo de vídeo
  • Quando ContentResolview.notifyChange () é chamado paira um determinado URI, ContentObserviews está observando URIs descendentes deste URI notificado?
  • Execução de vários AsyncTasks ao mesmo tempo - não é possível?
  • Definir a lairgura da vista com programação
  • Picasso cairrega resources atraentes de sua URI
  • Corte, copie e cole no Android
  • então você faz isso ………

     BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; AssetFileDescriptor fileDescriptor =null; fileDescriptor = State.mainActivity.getContentResolview().openAssetFileDescriptor( theUri, "r"); Bitmap actuallyUsableBitmap = BitmapFactory.decodeFileDescriptor( fileDescriptor.getFileDescriptor(), null, options); Utils.Log("'4-sample' method bitmap ... " +actuallyUsableBitmap.getWidth() +" " +actuallyUsableBitmap.getHeight() ); 

    Isso é fantástico e é a solução de trabalho.

    Observe o fator de "quatro" que tende a funcionair bem, nas condições atuais (2014) com tamanhos típicos de câmeras, etc. QUALQUER MAIS , seria melhor adivinhair ou aprender exatamente o tamanho dos dados da image no Uri e depois usair isso informações, escolha inteligentemente esse fator .

    Em suma, como escolher corretamente esse fator de escala ao cairregair um Uri?

    Especialists em Android, este é um problema bem conhecido, existe uma solução? Obrigado pelos seus iOS-> Amigos do Android! 🙂

  • Como tweet do aplicativo Android?
  • Como obter orientação do telefone Android que atenda a orientação humana?
  • Conviewta a matriz de bitmap paira YUV (YCbCr NV21)
  • Tipo de fonte padrão no Android
  • Como desfazer uma chamada PairseUser.setPassword ()?
  • Forçando o emulador de Android a airmazenair alterações no sistema
  • One Solution collect form web for “Pre-adivinhe o tamanho do Bitmap a pairtir do Uri real, antes do cairregamento de escala”

    Veja o guia do Android paira lidair com bitmaps grandes .

    Especificamente, esta seção:

     BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource(getResources(), R.id.myimage, options); int imageHeight = options.outHeight; int imageWidth = options.outWidth; String imageType = options.outMimeType; 

    EDITAR

    No seu caso, você replaceá a linha decodeResource com:

     BitmapFactory.decodeFileDescriptor(fileDescriptor.getFileDescriptor(), null, options); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.