43
43
/**
44
44
* Created by cuiminghui on 2017/3/30.
45
45
* 这是最复杂的一个 Sample, 演示了从网络加载动画,并播放动画。
46
+ * 更多的 Sample 可以在这里找到 https://github.com/yyued/SVGA-Samples
46
47
*/
47
48
48
49
public class MainActivity extends AppCompatActivity {
@@ -55,97 +56,17 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
55
56
super .onCreate (savedInstanceState );
56
57
testView = new SVGAImageView (this );
57
58
testView .setBackgroundColor (Color .GRAY );
58
- setupCallback ();
59
59
loadAnimation ();
60
60
setContentView (testView );
61
61
}
62
62
63
- private void setupCallback () {
64
- testView .setCallback (new SVGACallback () {
65
- @ Override
66
- public void onPause () {
67
-
68
- }
69
-
70
- @ Override
71
- public void onFinished () {
72
-
73
- }
74
-
75
- @ Override
76
- public void onRepeat () {
77
-
78
- }
79
-
80
- @ Override
81
- public void onStep (int frame , double percentage ) {
82
- // System.out.println("当前帧:" + frame);
83
- // System.out.println("当前百分比:" + percentage);
84
- }
85
- });
86
- }
87
-
88
- // 加载动态图像
89
- private void loadDynamicBitmap (final Runnable complete ) {
90
- OkHttpClient client = new OkHttpClient ();
91
- Request request = new Request .Builder ().url ("http://img.hb.aicdn.com/80cc8e001ccdc54febd448dc45119b4bd7924ea5530b-RllWp3_sq320" ).build ();
92
- client .newCall (request ).enqueue (new Callback () {
93
- @ Override
94
- public void onFailure (Call call , IOException e ) {
95
-
96
- }
97
- @ Override
98
- public void onResponse (Call call , Response response ) throws IOException {
99
- final Bitmap dynamicBitmap = BitmapFactory .decodeStream (response .body ().byteStream ());
100
- if (dynamicBitmap != null ) {
101
- final Bitmap editedBitmap = getRoundedCornerBitmap (dynamicBitmap , 168 );
102
- runOnUiThread (new Runnable () {
103
- @ Override
104
- public void run () {
105
- dynamicItem .setDynamicImage (editedBitmap , "99" ); // 99 这个值是由设计提供的
106
- complete .run ();
107
- }
108
- });
109
- }
110
- }
111
- });
112
- }
113
-
114
- private void loadDynamicText () {
115
- TextPaint textPaint = new TextPaint ();
116
- textPaint .setTextSize (30 );
117
- textPaint .setFakeBoldText (true );
118
- textPaint .setARGB (0xff , 0xff , 0xe0 , 0xa4 );
119
- textPaint .setShadowLayer ((float )1.0 , (float )0.0 , (float )1.0 , Color .BLACK );
120
- dynamicItem .setDynamicText ("崔小姐不吃鱼 送了魔法奇缘" , textPaint , "banner" );
121
- }
122
-
123
- // 如果有需要,你需要为动态加载的图像自行裁剪圆角、添加滤镜等操作。
124
- private static Bitmap getRoundedCornerBitmap (Bitmap bitmap , int pixels ) {
125
- Bitmap output = Bitmap .createBitmap (bitmap .getWidth (), bitmap
126
- .getHeight (), Bitmap .Config .ARGB_8888 );
127
- Canvas canvas = new Canvas (output );
128
- final int color = 0xff424242 ;
129
- final Paint paint = new Paint ();
130
- final Rect rect = new Rect (0 , 0 , bitmap .getWidth (), bitmap .getHeight ());
131
- final RectF rectF = new RectF (rect );
132
- final float roundPx = pixels ;
133
- paint .setAntiAlias (true );
134
- canvas .drawARGB (0 , 0 , 0 , 0 );
135
- paint .setColor (color );
136
- canvas .drawRoundRect (rectF , roundPx , roundPx , paint );
137
- paint .setXfermode (new PorterDuffXfermode (PorterDuff .Mode .SRC_IN ));
138
- canvas .drawBitmap (bitmap , rect , rect , paint );
139
- return output ;
140
- }
141
-
142
63
private void loadAnimation () {
143
64
SVGAParser parser = new SVGAParser (this );
144
65
try {
145
- parser .parse (new URL ("http ://legox.yy. com/svga/svga-me/ angel.svga" ), new SVGAParser .ParseCompletion () {
66
+ parser .parse (new URL ("https ://github. com/yyued/SVGA-Samples/blob/master/ angel.svga?raw=true " ), new SVGAParser .ParseCompletion () {
146
67
@ Override
147
68
public void onComplete (@ NotNull SVGAVideoEntity videoItem ) {
148
- SVGADrawable drawable = new SVGADrawable (videoItem , dynamicItem );
69
+ SVGADrawable drawable = new SVGADrawable (videoItem );
149
70
testView .setImageDrawable (drawable );
150
71
testView .startAnimation ();
151
72
}
0 commit comments