Load bitmap from file Android

 
  
public static Bitmap loadFromFile(String filename) {

      try {

          File f = new File(filename);

          if (!f.exists()) { return null; }

          Bitmap tmp = BitmapFactory.decodeFile(filename);

          return tmp;

      } catch (Exception e) {

          return null;

      }

  }
 
  

 

import java.io.File;

import java.io.FileOutputStream;



import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Bitmap.CompressFormat;

import android.os.Environment;



class PictUtil {

  public static File getSavePath() {

      File path;

      if (hasSDCard()) { // SD card

          path = new File(getSDCardPath() + "/Tegaky/");

          path.mkdir();

      } else { 

          path = Environment.getDataDirectory();

      }

      return path;

  }

  public static String getCacheFilename() {

      File f = getSavePath();

      return f.getAbsolutePath() + "/cache.png";

  }



  public static Bitmap loadFromFile(String filename) {

      try {

          File f = new File(filename);

          if (!f.exists()) { return null; }

          Bitmap tmp = BitmapFactory.decodeFile(filename);

          return tmp;

      } catch (Exception e) {

          return null;

      }

  }

  public static Bitmap loadFromCacheFile() {

      return loadFromFile(getCacheFilename());

  }

  public static void saveToCacheFile(Bitmap bmp) {

      saveToFile(getCacheFilename(),bmp);

  }

  public static void saveToFile(String filename,Bitmap bmp) {

      try {

          FileOutputStream out = new FileOutputStream(filename);

          bmp.compress(CompressFormat.PNG, 100, out);

          out.flush();

          out.close();

      } catch(Exception e) {}

  }



  public static boolean hasSDCard() { // SD????????

      String status = Environment.getExternalStorageState();

      return status.equals(Environment.MEDIA_MOUNTED);

  }

  public static String getSDCardPath() {

      File path = Environment.getExternalStorageDirectory();

      return path.getAbsolutePath();

  }



}

 

 Now question comes,about the "Bitmap tmp = BitmapFactory.decodeFile(filename);",no matter how I modify it ,the result tmp is always null!
the main point is options,the options should be specifid,indicate the format of the image.So it should be like this:

BitmapFactory.Options opts = new Options();

opts.inPreferredConfig = Config.RGB_565;

tmp=BitmapFactory.decodeFile(bitmapPath,opts);

 



                            

你可能感兴趣的:(android)