zoukankan      html  css  js  c++  java
  • 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);
    
    
  • 相关阅读:
    Java Executors小结
    Java取得一个对象里所有get方法和set方法, 读取某个类下所有变量的名称
    js中的this
    style,ng-style, ng-attr-style的对比
    keil 赋值之后再声明变量提示错误error: #268: declaration may not appear after executable statement in block
    网络字节顺序为大端模式
    MDK警告 warning: #111-D: statement is unreachable
    #231-D: declaration is not visible outside of function
    linux修改文件所有者和文件所在组
    getpwuid()
  • 原文地址:https://www.cnblogs.com/qiengo/p/2554572.html
Copyright © 2011-2022 走看看