自定义View 差不多许多东西都要重新定义,看代码你就懂了,
<com.kaili.www.test_listview.view.DxView
android:background="@android:color/holo_red_dark"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_margin="20dp"
app:circle_color ="@color/colorPrimary"
android:padding="20dp"/>
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int paddingLeft = getPaddingLeft();
int paddingRight = getPaddingRight();
int paddingTop = getPaddingTop();
int paddingBottom = getPaddingBottom();
int width = getWidth()-paddingLeft-paddingRight;
int height = getHeight()-paddingBottom-paddingTop;
int radius = Math.min(width,height)/2;
canvas.drawCircle(paddingLeft+width/2,paddingTop+height/2,radius,paint);
}
是不是立马就能明白了,原来是要我们自己处理padding,解决方法就是上面的,