1
1
package com.lt.load_the_image
2
2
3
3
import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.remember
5
4
import androidx.compose.ui.graphics.painter.Painter
6
- import com.lt.load_the_image.painter.HttpImagePainter
5
+ import com.lt.load_the_image.loader.DataToBeLoaded
6
+ import org.jetbrains.skia.Bitmap
7
+ import org.jetbrains.skia.Image
8
+ import java.io.File
9
+ import java.io.InputStream
7
10
8
11
/* *
9
12
* Load the image to @Composable Image
10
13
* [url]Can use Net url or native url
14
+ * [placeholderResource]Bitmap when loading network pictures (resource)
11
15
*/
12
16
@Composable
13
- fun rememberImagePainter (url : String ): Painter {
14
- return LoadTheImageManager .load(url)
17
+ fun rememberImagePainter (url : String , placeholderResource : String = ""): Painter {
18
+ val data = DataToBeLoaded (url)
19
+ data.placeholderResource = placeholderResource
20
+ return rememberImagePainter(data)
15
21
}
16
22
17
23
/* *
18
24
* Load the image to @Composable Image
19
- * [url]Can use Net url or native url
25
+ * [file]Local file
26
+ */
27
+ @Composable
28
+ fun rememberImagePainter (file : File ): Painter {
29
+ return LoadTheImageManager .load(DataToBeLoaded (file))
30
+ }
31
+
32
+ /* *
33
+ * Load the image to @Composable Image
34
+ * [bitmap]The [Bitmap]
35
+ */
36
+ @Composable
37
+ fun rememberImagePainter (bitmap : Bitmap ): Painter {
38
+ return LoadTheImageManager .load(DataToBeLoaded (bitmap))
39
+ }
40
+
41
+ /* *
42
+ * Load the image to @Composable Image
43
+ * [image]The [Image]
44
+ */
45
+ @Composable
46
+ fun rememberImagePainter (image : Image ): Painter {
47
+ return LoadTheImageManager .load(DataToBeLoaded (image))
48
+ }
49
+
50
+ /* *
51
+ * Load the image to @Composable Image
52
+ * [byteArray]Bytes of image
53
+ */
54
+ @Composable
55
+ fun rememberImagePainter (byteArray : ByteArray ): Painter {
56
+ return LoadTheImageManager .load(DataToBeLoaded (byteArray))
57
+ }
58
+
59
+ /* *
60
+ * Load the image to @Composable Image
61
+ * [inputStream]InputStream of image
20
62
* [placeholderResource]Bitmap when loading network pictures (resource)
63
+ * [isAutoCloseStream]Whether to close the stream automatically
64
+ */
65
+ @Composable
66
+ fun rememberImagePainter (
67
+ inputStream : InputStream ,
68
+ placeholderResource : String = "",
69
+ isAutoCloseStream : Boolean = true
70
+ ): Painter {
71
+ val data = DataToBeLoaded (inputStream)
72
+ data.placeholderResource = placeholderResource
73
+ data.isAutoCloseStream = isAutoCloseStream
74
+ return rememberImagePainter(data)
75
+ }
76
+
77
+ /* *
78
+ * Load the image to @Composable Image
79
+ * [data]Self assembling data
21
80
*/
22
81
@Composable
23
- fun rememberImagePainter (url : String , placeholderResource : String ): Painter {
24
- val painter = rememberImagePainter(url)
25
- remember(url) {
26
- if (painter is HttpImagePainter && painter.imageBitmap.value == null )
27
- painter.imageBitmap.value =
28
- LoadTheImageManager .loadResourceImageBitmap(placeholderResource)
29
- }
30
- return painter
82
+ fun rememberImagePainter (data : DataToBeLoaded ): Painter {
83
+ return LoadTheImageManager .load(data)
31
84
}
0 commit comments