1
00:00:00,640 --> 00:00:01,390
Welcome back.

2
00:00:01,780 --> 00:00:06,430
And this video, we are going to start with our kids drawing app and therefore we're going to build

3
00:00:06,430 --> 00:00:09,730
the first feature, which is to draw something on the screen.

4
00:00:09,970 --> 00:00:16,840
And I would always try to start with the main feature because building the main feature already gives

5
00:00:16,840 --> 00:00:21,610
you this sense of accomplishment, and you actually can see something like in this case, I can already

6
00:00:21,610 --> 00:00:26,470
start drawing something on the screen, which is pretty cool, even though it is not persistent, which

7
00:00:26,470 --> 00:00:27,070
is no problem.

8
00:00:27,070 --> 00:00:29,350
We are going to take care of that in the next video.

9
00:00:29,620 --> 00:00:33,070
But for now, we will see how we can draw something on the screen.

10
00:00:33,430 --> 00:00:39,850
Therefore, let's go ahead and create a new project, so create new project and there.

11
00:00:40,360 --> 00:00:43,180
Please select the empty activity.

12
00:00:43,180 --> 00:00:43,600
So.

13
00:00:44,720 --> 00:00:50,690
Create a new project with an empty activity, press next and call this one as you like, but I'm going

14
00:00:50,690 --> 00:00:53,750
to call this one kid's drawing app.

15
00:00:54,950 --> 00:01:02,420
Then as you can see, I'm using the API 21 version and everything else is default so we can click finish.

16
00:01:03,170 --> 00:01:08,330
The first thing I do once the project is loaded, I go to the manifest because what I want to do is

17
00:01:08,330 --> 00:01:15,590
I want to change the orientation or fixed the orientation of this app, and I wanted to constantly be

18
00:01:15,590 --> 00:01:16,340
portrayed mode.

19
00:01:16,790 --> 00:01:24,680
So I'm going to add Android Auto screen orientation, and here I set it to portrait.

20
00:01:25,640 --> 00:01:28,160
So adding that creates is a little arrow.

21
00:01:28,160 --> 00:01:33,770
Or at least it's complaining here, but I'm just going to keep it as that because it's still going to

22
00:01:33,770 --> 00:01:34,040
work.

23
00:01:34,400 --> 00:01:41,030
So what this will do is it will set the screen orientation to always be in portrait mode, even if we

24
00:01:41,030 --> 00:01:42,170
turn around the phone.

25
00:01:42,440 --> 00:01:44,510
So it will not change the orientation.

26
00:01:44,510 --> 00:01:50,990
And this is very helpful, especially because then you don't need to make your UI flexible, especially

27
00:01:50,990 --> 00:01:55,700
with this example that we're going to use here where we are going to work with views.

28
00:01:56,210 --> 00:02:00,320
It's going to make our life a lot easier, so we're going to keep it at that for now.

29
00:02:00,530 --> 00:02:06,110
You will later on see how you can create apps that will easily scale and work perfectly in all different

30
00:02:06,800 --> 00:02:07,610
orientations.

31
00:02:07,610 --> 00:02:10,699
But we're just going to keep it simple and use portrait only now.

32
00:02:10,970 --> 00:02:14,150
Next thing we need to do is we need to create another class in here.

33
00:02:14,150 --> 00:02:23,180
So I'm going to create a new Scotland class and I'm going to call this one drawing view, and it's going

34
00:02:23,180 --> 00:02:25,430
to be a class.

35
00:02:27,580 --> 00:02:32,980
All right, now, this drawing of you will need to be extended quite a bit, so the thing is we are

36
00:02:32,980 --> 00:02:35,500
going to use this as a view.

37
00:02:35,770 --> 00:02:40,060
So we're not going to use this as an activity because if we look at it this year, for example, is

38
00:02:40,060 --> 00:02:45,610
an activity which is inheriting from combat activity, which contains a lot of functionality that we

39
00:02:45,610 --> 00:02:46,120
can reuse.

40
00:02:46,360 --> 00:02:53,230
For example, on Create, which takes care of whatever should be displayed straight when their activity

41
00:02:53,230 --> 00:02:58,150
started, and in our case, it's just going to use this activity main example file, which we have,

42
00:02:58,150 --> 00:02:58,390
right?

43
00:02:58,390 --> 00:03:07,690
So this fine file here and now what I want to do is I want to create a class which will be visible inside

44
00:03:07,690 --> 00:03:12,850
of this main activity, but which we will define as a view.

45
00:03:13,480 --> 00:03:19,780
So you will see the power of use once we get there, because the thing is, usually you have a UI where

46
00:03:19,780 --> 00:03:23,890
you have a bunch of buttons and text views and those kind of things, and that's great for an activity.

47
00:03:24,130 --> 00:03:29,320
But if you want to draw something, then you need to do that on something that is of type view.

48
00:03:29,590 --> 00:03:29,980
All right.

49
00:03:30,220 --> 00:03:36,370
So that's why we need to go ahead and create a class which will inherit off this class called view.

50
00:03:37,340 --> 00:03:41,990
All right, and when we want to inherit from you, we first of all, need to import it.

51
00:03:42,740 --> 00:03:44,480
So here, hover over it.

52
00:03:44,750 --> 00:03:45,410
Press import.

53
00:03:46,660 --> 00:03:50,260
And then we also need to pass the right variables here.

54
00:03:50,290 --> 00:03:51,640
So I'm going to pass.

55
00:03:53,530 --> 00:04:00,100
Context and attributes, or at least I'm going to create those parameters here in the definition, once

56
00:04:00,100 --> 00:04:04,750
we've done it, we are going to add a primary constructor to our drawing view class.

57
00:04:05,080 --> 00:04:12,790
So first of all, I need to pass a context when creating a drawing view, then I want to have two attributes

58
00:04:13,030 --> 00:04:18,940
which will be of type attribute set so I can place a person.

59
00:04:18,940 --> 00:04:24,280
Some attributes, as you can see here, it's expecting attributes, so we need to import this class

60
00:04:24,280 --> 00:04:24,550
here.

61
00:04:24,700 --> 00:04:28,070
Attributes set and we need to import context here as well.

62
00:04:28,150 --> 00:04:34,900
So you can see Android or content to context and Android duty of the attribute set for those two classes

63
00:04:34,900 --> 00:04:35,950
that we are using here.

64
00:04:36,250 --> 00:04:38,860
And then we can use this.

65
00:04:38,980 --> 00:04:40,690
All right now, we can use this view.

66
00:04:40,690 --> 00:04:43,630
As you can see, we're not getting any complaints anymore.

67
00:04:43,870 --> 00:04:49,180
We can go ahead and create all of the variables that we need, all of the methods that we need and so

68
00:04:49,180 --> 00:04:49,510
forth.

69
00:04:50,110 --> 00:04:53,770
So what we want to do with this view is we want to be able to draw on it.

70
00:04:54,160 --> 00:05:00,760
And if you want to draw, then you, first of all, need to know what type of color you want to have,

71
00:05:01,060 --> 00:05:02,870
what kind of paint you want to have.

72
00:05:02,890 --> 00:05:05,740
So paint is not really a color itself.

73
00:05:05,740 --> 00:05:12,550
It's really a higher level class, which we will create and paint class that holds the style color information

74
00:05:12,550 --> 00:05:16,120
about how to draw geometries texts and bitmaps and all those kind of things.

75
00:05:16,450 --> 00:05:20,410
We're going to use that, then we're going to use a bitmap that we can draw on.

76
00:05:20,830 --> 00:05:26,340
Maybe you have worked with bitmaps before, which is a file type, and it's the same kind of concept.

77
00:05:26,350 --> 00:05:31,180
We have a pixel by pixel image and we need to know the thickness of the brush.

78
00:05:31,180 --> 00:05:34,690
We need to know which path we want to draw all those kind of things.

79
00:05:35,020 --> 00:05:39,340
And when we need all of those, it's a good idea to create variables for them.

80
00:05:39,880 --> 00:05:41,320
All right, so let's go ahead and do that.

81
00:05:41,680 --> 00:05:49,510
Let's create a private variable here, call and draw path, and that one will be of a custom path type.

82
00:05:49,960 --> 00:05:51,190
So what is custom path?

83
00:05:51,520 --> 00:05:55,150
Well, custom path is a class that we need to create because it's not available here.

84
00:05:55,420 --> 00:06:02,710
So I'm going to create a class called custom path and I will create it inside of my drawing view.

85
00:06:03,100 --> 00:06:05,620
So it's going to be a nested class, as you can see here.

86
00:06:05,710 --> 00:06:12,100
So it's a nested class, but I actually want it to be an internal inner class.

87
00:06:12,490 --> 00:06:20,170
So this custom path class should only be usable within my drawing view, and I wanted to have access

88
00:06:20,170 --> 00:06:22,390
to its variables back and forth.

89
00:06:22,630 --> 00:06:26,710
But the only thing that I really need to do in here is I need to.

90
00:06:27,950 --> 00:06:32,390
Followed a certain structure, so this custom path would just be of type path.

91
00:06:33,050 --> 00:06:33,410
All right.

92
00:06:33,410 --> 00:06:39,980
So there is a class called path, and I want it to be of type path, so I need to import path here as

93
00:06:39,980 --> 00:06:40,280
well.

94
00:06:41,320 --> 00:06:42,400
So in Port Perth.

95
00:06:43,480 --> 00:06:46,180
And here we're using Android graphics.

96
00:06:47,340 --> 00:06:49,230
Because of different types of path classes.

97
00:06:49,590 --> 00:06:51,720
So we're using the one from the Android library.

98
00:06:52,470 --> 00:06:56,070
And then I need to say I want to extend that path.

99
00:06:56,370 --> 00:07:02,880
And how I want to do that is I want to extend it by a variable type integer, which I'm going to call

100
00:07:02,880 --> 00:07:03,360
color.

101
00:07:03,750 --> 00:07:10,980
And another variable called brush thickness, which will be of type float.

102
00:07:12,340 --> 00:07:15,970
All right, so this is our entire class here, which I made internal.

103
00:07:16,210 --> 00:07:20,120
And it's called the custom path and it's of type.

104
00:07:20,620 --> 00:07:26,440
If you want to know more about path, you can keep the control key, click it and then click on path.

105
00:07:27,010 --> 00:07:30,320
And that will then open up the power class here.

106
00:07:30,340 --> 00:07:36,730
You can see that if you look at it here, the puff glass encapsulates compound multiple controlled geometric

107
00:07:36,730 --> 00:07:40,840
paths consisting of straight line segments, quadratic curves and Kubica's.

108
00:07:41,110 --> 00:07:44,620
It can be drawn with canvas drop have either filled or stroked.

109
00:07:45,210 --> 00:07:49,730
OK, so you have your different options, how you can draw it and as you can see, you need to draw

110
00:07:49,780 --> 00:07:50,560
on a canvas.

111
00:07:51,100 --> 00:07:51,460
All right.

112
00:07:51,460 --> 00:07:54,460
And so we need to use a canvas at some point.

113
00:07:55,000 --> 00:07:55,270
All right.

114
00:07:55,270 --> 00:08:01,370
Going back to our drawing view, now we have this class and we're going to use it later on.

115
00:08:01,390 --> 00:08:08,740
We also have this object of this class that we created, and it's another tool, so we have a question

116
00:08:08,740 --> 00:08:09,400
mark after it.

117
00:08:09,850 --> 00:08:13,030
And now we need to think about all of the other variables that we need to create.

118
00:08:13,450 --> 00:08:13,810
All right.

119
00:08:13,810 --> 00:08:19,000
So when you build this yourself and you have no idea how to build it, it would usually always check

120
00:08:19,000 --> 00:08:25,000
out some documentations or you would check out some tutorials on the internet or websites.

121
00:08:25,180 --> 00:08:27,380
Would you have done something very similar?

122
00:08:27,880 --> 00:08:30,370
And then you would go ahead and build that.

123
00:08:31,180 --> 00:08:36,429
And I myself also got inspired by as well or Sylvain Sorrell.

124
00:08:36,640 --> 00:08:38,429
How are you going to pronounce it?

125
00:08:38,440 --> 00:08:40,450
And he created it with Java.

126
00:08:40,450 --> 00:08:48,370
So he created this little drawing app with Java, creating a bunch of stuff, and his code is a little

127
00:08:48,370 --> 00:08:50,350
more complicated than what we are going to build.

128
00:08:50,350 --> 00:08:53,140
So you can check out this document here.

129
00:08:53,140 --> 00:08:54,850
You can see this is what he has built.

130
00:08:55,160 --> 00:08:57,300
But we're going to build it differently.

131
00:08:57,310 --> 00:08:59,650
As you saw, the final result is a little different.

132
00:08:59,980 --> 00:09:04,240
But in the end, it's going to be highly inspired by his work.

133
00:09:04,270 --> 00:09:06,220
OK, so this is something that you would usually do.

134
00:09:06,220 --> 00:09:09,400
You check out, OK, where can you find something on the internet?

135
00:09:09,400 --> 00:09:15,910
And if you build something completely new, then you need to break it down to the different aspects

136
00:09:15,910 --> 00:09:21,580
that this app has and then find tutorials on the different aspects or see if you can find a third party

137
00:09:21,580 --> 00:09:24,610
library, which will help you to build something.

138
00:09:25,090 --> 00:09:25,480
All right.

139
00:09:25,690 --> 00:09:30,040
So you can see he has some features that we're not going to add, but we have some features that he

140
00:09:30,040 --> 00:09:30,580
doesn't add.

141
00:09:30,580 --> 00:09:35,830
So if you want to have a blur mode or in boss mode, then you can get inspired by this tutorial.

142
00:09:36,640 --> 00:09:36,910
All right.

143
00:09:36,920 --> 00:09:42,310
Coming back to our example here, as I told you earlier, we are going to need a bitmap, so I'm going

144
00:09:42,310 --> 00:09:50,590
to create a private variable called canvas bitmap, which will be of type bitmap Nullarbor.

145
00:09:51,340 --> 00:09:52,630
And I'm going to set that to no.

146
00:09:53,200 --> 00:09:59,800
So as you can see now, I will need to import bitmap here because it's again another class that we are

147
00:09:59,800 --> 00:10:03,010
using and it's within the graphics library.

148
00:10:03,950 --> 00:10:09,890
Then I will need to have a paint, so I will need to paint class that holds a style color and information

149
00:10:09,890 --> 00:10:12,760
about how to draw the geometries, text and bitmaps.

150
00:10:12,770 --> 00:10:16,730
OK, so go ahead and create a private VAR.

151
00:10:18,480 --> 00:10:24,120
And draw paint, which is of type, paint, Nullarbor, and I'm going to set that to null as well,

152
00:10:24,330 --> 00:10:28,680
so you can see we have a bunch of variables that are null at the beginning and which we need to import

153
00:10:28,710 --> 00:10:34,380
here, the types of and we will need to set them once we initialize our drawing view.

154
00:10:34,500 --> 00:10:41,580
OK, so once somebody creates a drawing view, well, we need to initialize all of those variables because

155
00:10:41,580 --> 00:10:42,360
we're going to need them.

156
00:10:43,110 --> 00:10:48,570
And then I have another private variable here, which I'm going to call canvas paint, which is also

157
00:10:48,570 --> 00:10:49,290
of type paint.

158
00:10:51,640 --> 00:10:54,400
And I'm going to make this indelible as well here.

159
00:10:55,950 --> 00:10:58,380
And this should be the instance of the canvas paint view.

160
00:10:59,530 --> 00:11:04,300
All right, the next, I need to know how thick the brush size should be, so I'm going to create a

161
00:11:04,300 --> 00:11:10,330
variable here private bar and brush size, which is of type float.

162
00:11:10,810 --> 00:11:14,320
And here I set it to zero to float.

163
00:11:15,840 --> 00:11:20,460
All right, so it should just be the thickness of nothing, so I'm just going to set that to zero straight

164
00:11:20,460 --> 00:11:24,220
away and then only the color with which I want to draw.

165
00:11:24,380 --> 00:11:26,970
And I'm going to start with a color black here.

166
00:11:27,780 --> 00:11:28,860
Keep it super simple.

167
00:11:29,280 --> 00:11:32,460
Black color at the start and later on, we will see how we can change that.

168
00:11:33,240 --> 00:11:36,870
Now, at that point, you can, of course, go ahead and check out what a bit Matt does.

169
00:11:37,710 --> 00:11:41,360
You can see all of the functions that it has.

170
00:11:41,370 --> 00:11:45,960
As you can see, it has a bunch of functions and over 2000 lines of code.

171
00:11:46,650 --> 00:11:48,690
Then you could check out what a paint is.

172
00:11:49,320 --> 00:11:54,870
A paint glass holds the style and color information about how to draw geometries, text and bit maps.

173
00:11:54,900 --> 00:11:55,860
All right, perfect.

174
00:11:56,160 --> 00:11:57,290
So we want to do that.

175
00:11:57,300 --> 00:11:59,710
We want to draw something, so we are going to need that.

176
00:12:00,090 --> 00:12:03,500
And then you can, of course, also check float out if you want to.

177
00:12:03,840 --> 00:12:04,530
We've seen that.

178
00:12:04,740 --> 00:12:05,880
And then color as well.

179
00:12:05,880 --> 00:12:07,920
If you want to see the different colors that there are.

180
00:12:07,920 --> 00:12:11,250
So you can see there's black gray like gray, green and so forth.

181
00:12:11,250 --> 00:12:15,840
So a bunch of colors are prepared there already and you can use them any time.

182
00:12:16,860 --> 00:12:17,160
All right.

183
00:12:17,160 --> 00:12:20,910
So the next thing that I need to hear is a canvas that I want to draw on.

184
00:12:20,910 --> 00:12:25,060
So canvas is pretty much the background, the white background that I want to draw on.

185
00:12:25,770 --> 00:12:29,850
OK, so I'll need to have a canvas variable.

186
00:12:30,090 --> 00:12:31,760
So I'm just going to create one here.

187
00:12:31,770 --> 00:12:34,200
And of course, I need to import to that as well.

188
00:12:34,530 --> 00:12:34,950
So.

189
00:12:36,180 --> 00:12:44,850
Hold shift enter should important, as it can see now, it's been summarized to Android graphics star

190
00:12:44,940 --> 00:12:47,370
because now at that point, we're using multiple.

191
00:12:48,510 --> 00:12:52,650
Libraries from our graphics are multiple classes from all graphics library.

192
00:12:52,930 --> 00:12:57,660
And that's why it said, OK, I'm going to sum it up and I'm going to give you all of the graphics classes

193
00:12:57,660 --> 00:12:58,230
that there are.

194
00:12:59,070 --> 00:12:59,490
All right.

195
00:13:01,060 --> 00:13:07,060
OK, so the next thing we need to do is we need to set up the whole variables that we have here, so

196
00:13:07,060 --> 00:13:08,840
we have a bunch of variables which are null.

197
00:13:09,130 --> 00:13:14,110
And we need to set them so we can, of course, go ahead and create an edit here.

198
00:13:15,220 --> 00:13:18,730
So in this in it, we could go ahead and put all of those together.

199
00:13:18,970 --> 00:13:24,850
But then what makes sense is to have an especial method which will take care of that where you just

200
00:13:24,850 --> 00:13:26,260
need to call the method in here.

201
00:13:26,500 --> 00:13:32,080
So I'm just going to say set up drawing should be called in here.

202
00:13:32,410 --> 00:13:35,740
Of course, it doesn't know what set up drawing is, so we need to create a function here.

203
00:13:35,800 --> 00:13:40,180
So I'm going to create a private fun function called set up drawing.

204
00:13:40,480 --> 00:13:43,690
And in there, I'm just going to set all of the variables that I had up there.

205
00:13:43,930 --> 00:13:47,020
So I need to set to draw paint.

206
00:13:47,020 --> 00:13:48,790
And I'm just going to say it's of type paint.

207
00:13:49,030 --> 00:13:55,750
So it's just going to be a paint object and draw paint then and draw path should just be a.

208
00:13:57,350 --> 00:13:58,160
Custom path.

209
00:14:00,740 --> 00:14:03,170
Which has a color and a brush size.

210
00:14:04,130 --> 00:14:06,470
And here and brush size.

211
00:14:07,800 --> 00:14:10,890
As you can see, these two variables are the ones that we created up here.

212
00:14:11,190 --> 00:14:13,610
So these are the only two variables which weren't empty.

213
00:14:13,620 --> 00:14:16,380
As you can see, they are not malleable so we can directly use them.

214
00:14:16,680 --> 00:14:19,350
That's why I could directly pass them to our custom path.

215
00:14:19,860 --> 00:14:21,300
And here I am.

216
00:14:21,300 --> 00:14:23,700
Draw path now is not going to be null anymore.

217
00:14:24,270 --> 00:14:29,370
Then I need to set the color of my draw paint.

218
00:14:30,000 --> 00:14:34,590
All right, so I'm draw paint has a color.

219
00:14:36,760 --> 00:14:39,100
Attribute, and I want to set that to the color.

220
00:14:39,580 --> 00:14:42,670
So now the problem is and drop paint could be empty, right?

221
00:14:42,880 --> 00:14:50,290
So that's why it says you need to add non-oil asserted coal, so I can do that with double exclamation

222
00:14:50,290 --> 00:14:50,740
mark here.

223
00:14:51,160 --> 00:14:54,250
And that is only possible because we said drop paint before.

224
00:14:54,250 --> 00:14:56,350
So we know at that point that it's not empty.

225
00:14:56,590 --> 00:15:02,050
But if you want it to be super sure, you could of course go ahead and add and if and draw paint, not

226
00:15:02,050 --> 00:15:09,480
empty or not know something like that, then you would be honest about a super safe site.

227
00:15:09,490 --> 00:15:13,510
But in our case, we know, OK, we just set it to be of type paint.

228
00:15:14,230 --> 00:15:15,940
All right, or be a painter object.

229
00:15:16,510 --> 00:15:19,060
Next, we need to set the style.

230
00:15:19,450 --> 00:15:23,530
The stroke join and stroke cap of our AM draw paint.

231
00:15:23,950 --> 00:15:27,190
All right, so you can see that there are a bunch of variables that we need to set for it.

232
00:15:27,460 --> 00:15:29,500
So the next one would be the style.

233
00:15:29,800 --> 00:15:36,490
So here, style will be of type, paint, style, stroke.

234
00:15:37,120 --> 00:15:40,390
OK, so there are multiple styles you can check them out.

235
00:15:40,690 --> 00:15:44,530
You can see here there is Phil, Phil and stroke and stroke.

236
00:15:44,530 --> 00:15:47,140
And I'm just going to use a stroke, which is just going to be a line.

237
00:15:47,530 --> 00:15:51,100
And then you can say how the beginning and the end of the stroke should be.

238
00:15:51,340 --> 00:15:54,520
So should it be rounded or should it not be rounded?

239
00:15:54,940 --> 00:15:56,410
Should it be squared, for example?

240
00:15:56,650 --> 00:16:02,560
So here I'm just going to set the arm and draw paint that stroke join.

241
00:16:03,690 --> 00:16:04,980
To be round it.

242
00:16:05,280 --> 00:16:05,970
So paint.

243
00:16:07,080 --> 00:16:09,750
But join thought round.

244
00:16:11,350 --> 00:16:14,440
And they do the same thing for the stroke cap.

245
00:16:15,070 --> 00:16:16,540
All right, Andrew Rob Paint.

246
00:16:18,530 --> 00:16:23,090
Stroke cap is going to be paint that cap that.

247
00:16:24,060 --> 00:16:27,000
And you can see there is, but round and square.

248
00:16:27,210 --> 00:16:28,620
And I'm just going to use round here.

249
00:16:29,630 --> 00:16:33,950
But of course, as I said, you can play around with those and you can even find out what this stroke

250
00:16:33,950 --> 00:16:40,550
kept us, so kept sets to paint paints like cap style used whenever the paint style a stroke or stroke

251
00:16:40,550 --> 00:16:40,970
and feel.

252
00:16:41,300 --> 00:16:41,600
All right.

253
00:16:41,600 --> 00:16:46,040
So because we are using stroke, we are also setting the cap.

254
00:16:48,070 --> 00:16:51,070
And then how many variables do we still have which are empty?

255
00:16:51,100 --> 00:16:55,900
Well, we have our canvas bitmap, which we will set later on once we need it.

256
00:16:56,260 --> 00:17:01,540
But we still need to set our paint and we can change the brush size.

257
00:17:01,780 --> 00:17:02,110
All right.

258
00:17:02,110 --> 00:17:04,079
So let's do that real quick here.

259
00:17:04,089 --> 00:17:10,089
We can go ahead and set our and canvas paint.

260
00:17:12,490 --> 00:17:21,430
And here I'm going to create a pained object, but here I can use different flags so you can check out

261
00:17:21,430 --> 00:17:22,650
what those flags do.

262
00:17:22,660 --> 00:17:27,609
A dithering flag paint a flag that enables dithering when letting.

263
00:17:28,880 --> 00:17:34,640
And for me personally, as a non-native speaker or non-English speaker, these two terms were completely

264
00:17:34,640 --> 00:17:41,360
new, so dithering as some type of shaking so enables shaking when letting.

265
00:17:42,570 --> 00:17:47,490
Is to copy bits from one part of a computer graphical memory to another.

266
00:17:48,060 --> 00:17:48,360
All right.

267
00:17:48,360 --> 00:17:54,750
So that's what bloating is if you want to know more about it, of course, you can check out the Wikipedia

268
00:17:54,750 --> 00:17:55,500
article here.

269
00:17:55,980 --> 00:17:57,360
What is bloating and graphics?

270
00:17:57,360 --> 00:18:02,400
And you will find the blit explanation here, and that is generally what I would recommend to you.

271
00:18:02,410 --> 00:18:07,200
So if there is any term that you don't know, just Google it, because I can, of course, explain every

272
00:18:07,200 --> 00:18:09,060
single thing that we see here on the screen.

273
00:18:09,060 --> 00:18:12,900
But then it will be boring for all of those who already know all those terms.

274
00:18:13,170 --> 00:18:17,790
And that's what makes sense to sometimes just look something up if you don't know what it means and

275
00:18:17,790 --> 00:18:18,300
what it does.

276
00:18:20,280 --> 00:18:24,780
All right, and then there is one last thing left to do for this video, and that is to set the brush

277
00:18:24,780 --> 00:18:31,170
size, so I'm just going to set it to 20 for the beginning.

278
00:18:32,280 --> 00:18:36,280
Of course, you could argue that you could set it to 20 straight from the get go here.

279
00:18:36,640 --> 00:18:43,680
I just started with zero and then I set it in my set up drawing so that this function here or this method

280
00:18:43,710 --> 00:18:49,440
set up drawing will always be taken care of, setting up everything that we want to have at the start

281
00:18:49,590 --> 00:18:51,450
of our application.

282
00:18:51,780 --> 00:18:52,080
All right.

283
00:18:52,080 --> 00:18:56,820
So it's all at one spot right now, so you can do it as you prefer.

284
00:18:57,450 --> 00:19:00,480
And now we have this in it, which will set up the drawing.

285
00:19:00,660 --> 00:19:04,500
Now, of course, we cannot test this yet, and that is something that we will need to set up.

286
00:19:04,800 --> 00:19:10,230
And there's still quite something to add in this drawing view, and we're going to do that in the next

287
00:19:10,230 --> 00:19:13,170
video because otherwise this video would be way too long.

288
00:19:13,200 --> 00:19:15,450
So here you there and see you there.

