开发者

Specify image url for canvas

开发者 https://www.devze.com 2023-04-11 03:15 出处:网络
I have the following code: canvas.drawBitmap (mBitma开发者_JAVA百科p, 0,0,null); how to I make mBitmap as PATH or an image from the SD card? so when I save the canvas, it will save the image from t

I have the following code:

canvas.drawBitmap (mBitma开发者_JAVA百科p, 0,  0,null);

how to I make mBitmap as PATH or an image from the SD card? so when I save the canvas, it will save the image from that URL?

Thanks a lot for any help! :)


If it is a URL, you will need to download the byte stream and save and then use BitmapFactory to decode it into a Bitmap Object.

An example of this can be found here

The same applies for a file, but you can use BitmapFactory.decodeFile(...)


You can't do it, except you create a custom CustomCanvas class for your purpose. By any means, you still need to download & cache image before draw.


Here is a link to a tutorial that does this

Gist :

Enable drawing cache :

 setDrawingCacheEnabled(true);

Mapping canvas to bitmap :

      canvas = mSurfaceHolder.lockCanvas(null);
      if(mBitmap == null){
        mBitmap =  Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);;
      }
      final Canvas c = new Canvas (mBitmap);
      c.drawColor(0, PorterDuff.Mode.CLEAR);
      commandManager.executeAll(c);
      canvas.drawBitmap (mBitmap, 0,  0,null);

Saving the image :

final FileOutputStream out = new FileOutputStream(new File(APP_FILE_PATH + "/myAwesomeDrawing.png"));
      nBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
      out.flush();
      out.close();
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号