1
+ package com .sqisland .android .graphics_demo ;
2
+
3
+ import android .app .Activity ;
4
+ import android .graphics .Bitmap ;
5
+ import android .graphics .Canvas ;
6
+ import android .graphics .Color ;
7
+ import android .graphics .Paint ;
8
+ import android .graphics .RectF ;
9
+ import android .os .Bundle ;
10
+ import android .widget .ImageView ;
11
+
12
+ public class ClipRectActivity extends Activity {
13
+ private Paint paint = new Paint (Paint .ANTI_ALIAS_FLAG );
14
+ private RectF rect = new RectF ();
15
+
16
+ @ Override
17
+ protected void onCreate (Bundle savedInstanceState ) {
18
+ super .onCreate (savedInstanceState );
19
+ setContentView (R .layout .activity_clip_rect );
20
+
21
+ ImageView imageView = (ImageView ) findViewById (R .id .image );
22
+ int width = getResources ().getDimensionPixelSize (R .dimen .clip_rect_width );
23
+ int height = getResources ().getDimensionPixelSize (R .dimen .clip_rect_height );
24
+
25
+ Bitmap bitmap = createClipRect (width , height );
26
+ imageView .setImageBitmap (bitmap );
27
+ }
28
+
29
+ // Assumes width > height
30
+ private Bitmap createClipRect (int width , int height ) {
31
+ paint .setColor (Color .GREEN );
32
+
33
+ Bitmap bitmap = Bitmap .createBitmap (width , height , Bitmap .Config .ARGB_8888 );
34
+ Canvas canvas = new Canvas (bitmap );
35
+ float radius = height / 2 ;
36
+
37
+ canvas .save ();
38
+ canvas .clipRect (0 , 0 , width , height );
39
+
40
+ rect .set (0 , 0 , width + height , height );
41
+ canvas .drawRoundRect (rect , radius , radius , paint );
42
+
43
+ canvas .restore ();
44
+
45
+ return bitmap ;
46
+ }
47
+ }
0 commit comments