├── .gitattributes
├── .gitignore
├── README.md
├── image
└── FigureImageView.png
├── source
├── FigureImageView.java
├── attrs.xml
└── 示例FigureImageView.java
└── test.txt
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Windows image file caches
2 | Thumbs.db
3 | ehthumbs.db
4 |
5 | # Folder config file
6 | Desktop.ini
7 |
8 | # Recycle Bin used on file shares
9 | $RECYCLE.BIN/
10 |
11 | # Windows Installer files
12 | *.cab
13 | *.msi
14 | *.msm
15 | *.msp
16 |
17 | # Windows shortcuts
18 | *.lnk
19 |
20 | # =========================
21 | # Operating System Files
22 | # =========================
23 |
24 | # OSX
25 | # =========================
26 |
27 | .DS_Store
28 | .AppleDouble
29 | .LSOverride
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear in the root of a volume
35 | .DocumentRevisions-V100
36 | .fseventsd
37 | .Spotlight-V100
38 | .TemporaryItems
39 | .Trashes
40 | .VolumeIcon.icns
41 |
42 | # Directories potentially created on remote AFP share
43 | .AppleDB
44 | .AppleDesktop
45 | Network Trash Folder
46 | Temporary Items
47 | .apdisk
48 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FigureImageView
2 | ## Introduction
3 | 本类继承自ImageView,可以用于设置图片的形状,现有圆角、圆形、扇形、环形,四种可选方式。
4 | 可以通过set或者xml来设置圆角的半径,以及扇形、环形样式的角度。
5 |
6 | ## Version
7 | SdkVersion >= 19
8 | ## Usage
9 | ```Xml
10 |
11 |
25 |
32 |
39 |
46 |
53 |
54 | ```
55 |
56 |
57 |
58 |
59 | ## More
60 | ```Java
61 |
62 | public void setLength(float length) {
63 | this.length = length;
64 | }
65 | ```
66 | 可用于设置显示图片区域的大小
67 |
68 | ## About
69 | **博客:www.idtkm.com**
70 | **GitHub:https://github.com/Idtk**
71 | **邮箱:IdtkMa@gmail.com**
72 |
--------------------------------------------------------------------------------
/image/FigureImageView.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idtk/FigureImageView/902acce76a6d70b8a450f9a596cc8d89e3443058/image/FigureImageView.png
--------------------------------------------------------------------------------
/source/FigureImageView.java:
--------------------------------------------------------------------------------
1 | package com.customview;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import android.graphics.Canvas;
6 | import android.graphics.Paint;
7 | import android.graphics.Path;
8 | import android.graphics.PorterDuff;
9 | import android.graphics.PorterDuffXfermode;
10 | import android.graphics.Rect;
11 | import android.graphics.RectF;
12 | import android.util.AttributeSet;
13 | import android.widget.ImageView;
14 |
15 | /**
16 | * Created by Idtk on 2016/5/29.
17 | * blog : http://www.idtkm.com/
18 | */
19 |
20 | public class FigureImageView extends ImageView {
21 |
22 | protected int mViewWidth,mViewHeight;
23 | protected Paint mPaint = new Paint();
24 | protected Rect rect = new Rect();
25 | protected float length = 0;
26 |
27 | private RectF rectF = new RectF();
28 | private Path mPath = new Path();
29 | private Path mPath1 = new Path();
30 |
31 | private int modeFlag = 0x00;
32 | private static final int CIRCLE = 0x00;
33 | private static final int ROUNDRECT = 0x01;
34 | private static final int SECTOR = 0x02;
35 | private static final int RING = 0x03;
36 | private int radius = 50;
37 | private float angle = -120;
38 |
39 | public FigureImageView(Context context) {
40 | this(context,null);
41 | }
42 |
43 | public FigureImageView(Context context, AttributeSet attrs) {
44 | this(context, attrs,0);
45 | }
46 |
47 | public FigureImageView(Context context, AttributeSet attrs, int defStyleAttr) {
48 | super(context, attrs, defStyleAttr);
49 | TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.FigureImageView, defStyleAttr,0);
50 | int n = array.getIndexCount();
51 | for (int i=0; i
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/示例FigureImageView.java:
--------------------------------------------------------------------------------
1 | package com.example.administrator.customview;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import android.graphics.Bitmap;
6 | import android.graphics.Canvas;
7 | import android.graphics.Matrix;
8 | import android.graphics.Paint;
9 | import android.graphics.Path;
10 | import android.graphics.Rect;
11 | import android.graphics.RectF;
12 | import android.graphics.Region;
13 | import android.graphics.drawable.BitmapDrawable;
14 | import android.graphics.drawable.Drawable;
15 | import android.util.AttributeSet;
16 | import android.widget.ImageView;
17 |
18 | /**
19 | * Created by Administrator on 2016/5/29.
20 | */
21 |
22 | public class FigureImageView extends ImageView {
23 |
24 | protected int mViewWidth,mViewHeight;
25 | protected Paint mPaint = new Paint();
26 | protected Rect rect = new Rect();
27 | protected float length;
28 |
29 | private RectF rectF = new RectF();
30 | private Path mPath = new Path();
31 | private Path mPath1 = new Path();
32 | private Path mPath2 = new Path();
33 | private Matrix matrix = new Matrix();
34 | private Bitmap b;
35 |
36 | private int modeFlag = 0x00;
37 | private static final int CIRCLE = 0x00;
38 | private static final int ROUNDRECT = 0x01;
39 | private static final int SECTOR = 0x02;
40 | private static final int RING = 0x03;
41 | private int radius = 50;
42 | private float angle = -120;
43 |
44 | public FigureImageView(Context context) {
45 | this(context,null);
46 | }
47 |
48 | public FigureImageView(Context context, AttributeSet attrs) {
49 | this(context, attrs,0);
50 | }
51 |
52 | public FigureImageView(Context context, AttributeSet attrs, int defStyleAttr) {
53 | super(context, attrs, defStyleAttr);
54 | TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.FigureImageView, defStyleAttr,0);
55 | /*int n = array.getIndexCount();
56 | for (int i=0; i