16
16
import android .widget .TextView ;
17
17
import androidx .annotation .Nullable ;
18
18
import com .facebook .drawee .controller .AbstractDraweeControllerBuilder ;
19
+ import com .facebook .drawee .drawable .ScalingUtils ;
19
20
import com .facebook .drawee .generic .GenericDraweeHierarchy ;
20
21
import com .facebook .drawee .generic .GenericDraweeHierarchyBuilder ;
21
22
import com .facebook .drawee .interfaces .DraweeController ;
25
26
import com .facebook .react .bridge .ReadableMap ;
26
27
import com .facebook .react .modules .fresco .ReactNetworkImageRequest ;
27
28
import com .facebook .react .uimanager .PixelUtil ;
29
+ import com .facebook .react .views .image .ImageResizeMode ;
28
30
import com .facebook .react .views .text .TextInlineImageSpan ;
29
31
30
32
/**
@@ -50,6 +52,7 @@ public class FrescoBasedReactTextInlineImageSpan extends TextInlineImageSpan {
50
52
private Uri mUri ;
51
53
private int mWidth ;
52
54
private ReadableMap mHeaders ;
55
+ private String mResizeMode ;
53
56
54
57
private @ Nullable TextView mTextView ;
55
58
@@ -61,7 +64,8 @@ public FrescoBasedReactTextInlineImageSpan(
61
64
@ Nullable Uri uri ,
62
65
ReadableMap headers ,
63
66
AbstractDraweeControllerBuilder draweeControllerBuilder ,
64
- @ Nullable Object callerContext ) {
67
+ @ Nullable Object callerContext ,
68
+ String resizeMode ) {
65
69
mDraweeHolder = new DraweeHolder (GenericDraweeHierarchyBuilder .newInstance (resources ).build ());
66
70
mDraweeControllerBuilder = draweeControllerBuilder ;
67
71
mCallerContext = callerContext ;
@@ -70,6 +74,7 @@ public FrescoBasedReactTextInlineImageSpan(
70
74
mHeaders = headers ;
71
75
mWidth = (int ) (PixelUtil .toPixelFromDIP (width ));
72
76
mHeight = (int ) (PixelUtil .toPixelFromDIP (height ));
77
+ mResizeMode = resizeMode ;
73
78
}
74
79
75
80
/**
@@ -130,7 +135,7 @@ public void draw(
130
135
ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder .newBuilderWithSource (mUri );
131
136
ImageRequest imageRequest =
132
137
ReactNetworkImageRequest .fromBuilderWithHeaders (imageRequestBuilder , mHeaders );
133
-
138
+ mDraweeHolder . getHierarchy (). setActualImageScaleType ( getResizeMode ( mResizeMode ));
134
139
DraweeController draweeController =
135
140
mDraweeControllerBuilder
136
141
.reset ()
@@ -163,6 +168,10 @@ public void draw(
163
168
canvas .restore ();
164
169
}
165
170
171
+ private ScalingUtils .ScaleType getResizeMode (String resizeMode ) {
172
+ return ImageResizeMode .toScaleType (resizeMode );
173
+ }
174
+
166
175
@ Override
167
176
public int getWidth () {
168
177
return mWidth ;
0 commit comments