要实现的是Keep的这个部分:
先直接看实现后的效果图:
就是这个,通过点击应用发现,界面中不止一处用到了这个组合作为头像,因此需要我们进行一下封装。
为了方便不同界面的调用,我们写一个自定义的View,这样就可以在xml布局文件中直接进行使用了。
先来分析一下界面,初步可以看到有四个部分,先是整体的大白圆形背景,之后是灰色的虚线,灰色虚线上面覆盖着绿色的虚线,最后是中间部分的头像照片。
因此我们可以分为两部分来进行开发,即头像照片是一部分,其余为一部分。
我们首先来写非照片部分,也就是圆形和圆弧的部分。
这部分用到的Android技术主要就是自定义View绘制圆形和圆弧,如下所示:
/**
* 自定义带有正圆形边框的View
*/
public class CusRoundFrameView extends View {
public int backgroundColor = Color.WHITE;//最外圈实心圆背景色
public int progressCount = 7;//绿色进度条个数
public CusRoundFrameView(Context context) {
super(context);
}
public CusRoundFrameView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public CusRoundFrameView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public CusRoundFrameView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int padding = 11;//内圈距离外框距离