项目中要用到一个记录订单数量的控件,要求实现的效果是每次点击这个控件,里面的值就会自动加一,直至加大最大之后又重新从一开始加。之前一直是使用默认的TextView来实现的,但是考虑到项目中又多个地方要用到这个控件,所以决定把它自定义一下。
(控件的截图)
1、以前的实现的方法
int count = Integer.parseInt(amount.getText().toString());
amount.setText(String.valueOf(count % 5 + 1));
2、自定义View的方法
首先定义一个View,叫AmountView,继承自TextView。具体代码如下:
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.TextView;
/**
* 自定义UI控件,记录菜的份数
*
* @school University of South China
* @date 2014.01
*/
public class AmountView extends TextView {
/**
* 最大的份数
*/
private int mMaxAmount = 5;
/**
* 当前显示的份数
*/
private int mAmount = 1;
public AmountView(Context context) {
super(context);
setText(mAmount + "");
}
public AmountView(Context context, AttributeSet attrs) {
super(context, attrs);
setText(mAmount + "");
}
public AmountView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setText(mAmount + "");
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
mAmount = mAmount % mMaxAmount + 1;
setText(mAmount + "");
System.out.println("AmoutView onTouchEvent");
}
return super.onTouchEvent(event);
}
public void setMaxAmount(int maxAmount) {
mMaxAmount = maxAmount;
}
public void setAmount(int amount) {
this.mAmount = amount;
setText("" + mAmount);
}
}
注意的几个地方:
(1)必须要实现默认的三个构造方法。
(2)setText方法的参数是Charsequece,不能传int型参数,所以mAmount 后面加双引号。
(3)在onTouchEvent()方法中处理点击事件
然后在在布局文件中用完整的包名申明该控件即可使用了。
分享到:
相关推荐
仿微信联系人 手机通讯录的快速索引,自定义view实现,注释齐全....
android自定义View实现SwitchView
主要为大家详细介绍了Android自定义view实现选座功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android自定义View实现转盘旋转的效果
这是一个使用自定义View实现显示图片,并实现了手势缩放、拖拽、切换。在缩放状态下单手指拖拽图片,在未缩放状态下可以实现图片切换或其他功能,已经留好对应接口。只要修改相关代码就可以了
通过自定义view实现类似于天气的控件
网上大多是通过自定义ViewGroup实现流布局,在ListView或者GridView中使用时,性能不好,这里是通过自定义View实现流布局的,目前仅支持文本。
自定义view 实现TextView和imager的倒影效果,提高了单独定义效果...
文字的长度小于textview的长度,就不能实现跑马灯的效果, 如果要实现就要自定义,以下就是
自定义View实现随滑动由箭头变对勾的指示按钮
仿真书籍翻页效果BookPageView简介:实现了仿真翻页效果,教程完整地描述了翻页原理分析到性能优化的过程教程博客:Android自定义View——从零开始实现书籍翻页效果(一) Android自定义View——从零开始实现书籍...
该项目使用AS开发,通过获取当前系统时间,然后通过自定义View加自定义的属性动画ValueAnimator实现了一个带动画效果的时钟,对学习自定义View是一个很好的例子
自定义view之学习12/2。。刮刮乐的实现,,都来动手来刮一下吧。。有惊喜哦。。
自定义View实现了健康指数监控,也可以当做进度条使用,已适配屏幕大小。
通过自定义view实现图片可以附带文字介绍 设置文字的位置 可以右对齐 左对齐 居中 测量文字宽高
Android自定义View——实现字母导航栏
本文利用SrcIn实现一个人脸扫描的效果,步骤如下: 1、准备两个人脸照片(一明一暗),暗照片作为背景,亮照片作为src前景显示 2、然后通过SrcIn用一个透明矩形框(Dst)与亮照片(src)取交集即可得出一个亮照片的...
详情请查看博客:https://blog.csdn.net/qq_20785431/article/details/80740421
自定义View实现微信主页渐变效果,博客链接http://blog.csdn.net/wanzhuanit/article/details/50529470 自己资源分不够 才会要分的 还请见谅
自定义view实现仪表盘功能