public Bitmap decodeFileDescriptor(FileDescriptor fd,BitmapFactory.Options options){
  if (options.mCancel) {
    return null;
  }
  Thread thread=Thread.currentThread();
  if (!canThreadDecoding(thread)) {
    Log.d(TAG,"Thread " + thread + " is not allowed to decode.");
    return null;
  }
  setDecodingOptions(thread,options);
  Bitmap b=BitmapFactory.decodeFileDescriptor(fd,null,options);
  removeDecodingOptions(thread);
  return b;
}

public Bitmap decodeFileDescriptor ( FileDescriptor fd , BitmapFactory . Options options ) { if ( options . mCancel ) { return null ; } Thread thread = Thread . currentThread ( ) ; if ( ! canThreadDecoding ( thread ) ) { Log . d ( TAG , "Thread " + thread + " is not allowed to decode." ) ; return null ; } setDecodingOptions ( thread , options ) ; Bitmap b = BitmapFactory . decodeFileDescriptor ( fd , null , options ) ; removeDecodingOptions ( thread ) ; return b ; }
the real place to delegate bitmap decoding to bitmapfactory .
