1. Concept difference:
Many netizens have just started to learn the android platform, and the concepts between drawable, bitmap, canvas, and paint are not very clear.In fact, they have already appeared in sun's j2me except drawable.However, in the android platform, bitmap and canvas are all changed.
First let us understand that the display class in the android platform is view, but also provides the underlying graphics class android.graphics. These are the graphics underlying graphics interfaces.
bitmap-called a bitmap
The file format suffix of general bitmap is bmp. Of course, there are many encoders such as rgb565 and rgb888. As a pixel-by-pixel display object, it performs efficiently,However, it is also obvious that the storage efficiency is low.We understand that it is better to store objects.
drawable-As a general-purpose graphic object for Android.
It can load images in common formats,Such as gif, png, jpg, of course, bmp is also supported, and of course some advanced visualization objects are also provided,Such as gradients, graphics, and so on.
We can think of it as a process,Use various methods to manage bitmap, gl, or path. At the same time, it can cooperate with the matrix class to perform operations such as rotation, scaling, etc.The canvas class also provides operations such as cropping and selection.
paint-we can think of it as a drawing tool
Such as paint brushes, paint brushes. He manages the font, color, and style of each drawing tool.
If it involves some android game development and display special effects, you can efficiently implement your own application through these underlying graphics classes.
2. Conversion method:
1) Bitmap is converted to byte
bytearrayoutputstream out=new bytearrayoutputstream (); bitmap.compress (bitmap.compressformat.png, 100, out); byte  array=out.tobytearray ();
2) byte into bitmap
final contentresolver contentresolver=context.getcontentresolver (); final packagemanager manager=context.getpackagemanager (); final cursor c=contentresolver.query (uri, null, null, null, null); final int icon3dindex=c.getcolumnindexorthrow (columnname); byte  data=c.getblob (icon3dindex); bitmap bitmap=bitmapfactory.decodebytearray (data, 0, data.length);
3) bitmap conversion drawable
bitmap bitmap=new bitmap (...);drawable drawable=new bitmapdrawable (bitmap); //drawable drawable=new fastbitmapdrawable (bitmap);
4) drawable to bitmap
a. bitmapdrawable, fastbitmapdrawable directly using getbitmap
b. Other types of drawables are drawn to a bitmap using canvas.
canvas canvas=new canvas (bitmap) drawable.draw (canvas); drawable d=imageslist.get (0);bitmap bitmap=((bitmapdrawable) d) .getbitmap ();
- python - you may need to restart the kernel to use updated packages error
- php - coincheck api authentication doesn't work
- php - i would like to introduce the coincheck api so that i can make payments with bitcoin on my ec site
- [php] i want to get account information using coincheck api
- the emulator process for avd pixel_2_api_29 was killed occurred when the android studio emulator was started, so i would like to
- python 3x - typeerror: 'method' object is not subscriptable
- i want to call a child component method from a parent in vuejs
- xcode - pod install [!] no `podfile 'found in the project directory
- sh - 'apt-get' is not recognized as an internal or external command, operable program or batch file