先上效果图,没有图说个鸟啊.
如上图就是需要我们去实现的功能。
.这单个功能比较独立,而且一个界面如果到处写这样的小控件也麻烦不方便管理,再者不方便二次利用,所以我需要把他封装成一个控件
封装控件,也叫自定义控件有那些好处呢?
1.功能模块的完整性
2.可以更好的维护与扩展,
3.可以二次利用,不需要重复靠轮子
封装控件的原则是什么?
我们把控件看成一个黑盒子,外部无需理会里面的实现过程.
1.黑盒子能给外面提供什么?
2.外面需要给黑盒子提供什么?
搞清楚这两条,封装控件的基本思路已经完成,接下来就是编码实现了.
1.黑盒子能给外面提供什么?
提供当前的数据,我这里是用一个回调方法来实现的
callback.change(countValue);
2.外面需要给黑盒子提供什么?
我们这里需要给设置一个最大值:
public void setMaxValue(int max) {
this.maxValue = max;
}
上面是思路接下来是代码实现了:
首先布局一下: 这个也没有什么好讲的,大家看看就好
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_count_minus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_count_minu_selector"
android:enabled="false" />
&