编译后是没问题了,但如果生成签名的APK还是会出现这个问题,怎么解决呢?
引用 okhttp3 后编译报错implementation("com.squareup.okhttp3:okhttp:3.14.1")方式引用 okhttp3 后,执行编译,报错,内容如下:Caused ...
做一个智能风扇时 客户有一个智能遥控器的需求,就写了个比较简单的自定义控件。代码注释很详细了,就不多说了。自己看下啦,有问题的问题一起交流下。 效果如下图:
有几处可以稍加修改下:
1)构造函数
public DiskMenuViewEight(Context context) {
this(context, null);
}
public DiskMenuViewEight(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public DiskMenuViewEight(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
2)onMeasure函数
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int defaultWidth = 600;
int defaultHeight = 600;
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int width = 0;
int height = 0;
switch (widthMode) {
case MeasureSpec.AT_MOST:
width = Math.min(defaultWidth, getMeasuredWidth());
break;
case MeasureSpec.EXACTLY:
width = Math.min(defaultWidth, getMeasuredWidth());
break;
case MeasureSpec.UNSPECIFIED:
width = defaultWidth;
break;
default:
break;
}
switch (heightMode) {
case MeasureSpec.AT_MOST:
height = Math.min(defaultHeight, getMeasuredHeight());
break;
case MeasureSpec.EXACTLY:
height = Math.min(defaultHeight, getMeasuredHeight());
break;
case MeasureSpec.UNSPECIFIED:
height = defaultHeight;
break;
default:
break;
}
setMeasuredDimension(width, height);
}
3)onTouchEvent里接口要判空
if (null != mChangeStateListener && null != mArea) {
mChangeStateListener.onChangeState(mArea);
}
Android 的一个简单的遥控器自定义控件做一个智能风扇时 客户有一个智能遥控器的需求,就写了个比较简单的自定义控件。代码注释很详细了,就不多说了。自己看下啦,有问题的问题一起交流下。 效果如下图: