代码之家  ›  专栏  ›  技术社区  ›  Alex

将图像复制到内存

  •  3
  • Alex  · 技术社区  · 14 年前

    如何将图像复制到内存中并在此之后恢复?

    2 回复  |  直到 14 年前
        1
  •  12
  •   Elijah Cornell    14 年前

    可以使用openfileoutput()和bitmap.compress()的以下组合将图像存储到内部存储器中。

    // Create a BitMap object of the image to be worked with
    final Bitmap bm = BitmapFactory.decodeStream( ..some image.. );
    
    // The openfileOutput() method creates a file on the phone/internal storage in the context of your application 
    final FileOutputStream fos = openFileOutput("my_new_image.jpg", Context.MODE_PRIVATE);
    
    // Use the compress method on the BitMap object to write image to the OutputStream
    bm.compress(CompressFormat.JPEG, 90, fos);
    
        2
  •  1
  •   Barmaley    14 年前

    我会用以下方式来做:

    //read bitmap from resource
    public InputStream getBitmapStreamFromResource(Context context, int recourceId)
    {
        return context.getResources().getAssets().open(recourceId);
    }
    
    
    // convert stream into Bitmap
    public Bitmap getBitmapFromStream(InputStream is)
    {
        return BitmapFactory.decodeStream(is);
    }
    
    //inflate bitmap in a given parent View
    public View inflateToView(Context context, ViewGroup parent, Bitmap bitmap)
    {
        ViewGroup layout=new LinearLayout(context);
        layout.setLayoutParams(new          ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        ImageView imageView=new ImageView(context);
        imageView.setEnabled(true);
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        imageView.setAdjustViewBounds(true);
        imageView.setImageBitmap(bitmap);
        layout.addView(imageView);
        parent.addView(layout);
        return layout;
    }