【Android自定义View】安卓制作自定义控件
来源:互联网 发布:淘宝上架宝贝无商标 编辑:程序博客网 时间:2024/06/02 00:10
很多时候安卓系统的控件在美观程度上和功能使用上都无法做到极致,所以对于不同项目开发应当要有一些定制的控件,下面我来讲讲自定义控件制作的流程
在此我以一个开发案例做例子。
自定义一个EditText,在右边添加一个删除功能
:继承EditText
部分代码如下:
- private void init() {
- imgInable = mContext.getResources().getDrawable(R.drawable.delete_gray);
- imgAble = mContext.getResources().getDrawable(R.drawable.delete);
- addTextChangedListener(new TextWatcher() {
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {}
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void afterTextChanged(Editable s) {
- setDrawable();
- }
- });
- setDrawable();
- }
- //设置删除图片
- private void setDrawable() {
- if(length() < 1)
- setCompoundDrawablesWithIntrinsicBounds(null, null, imgInable, null);
- else
- setCompoundDrawablesWithIntrinsicBounds(null, null, imgAble, null);
- }
- // 处理删除事件
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) {
- int eventX = (int) event.getRawX();
- int eventY = (int) event.getRawY();
- Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY);
- Rect rect = new Rect();
- getGlobalVisibleRect(rect);
- rect.left = rect.right - 50;
- if(rect.contains(eventX, eventY))
- setText("");
- }
- return super.onTouchEvent(event);
- }
- 然后可以在XML放入可以用了
2 0
- 【Android自定义View】安卓制作自定义控件
- 安卓自定义控件(三)实现自定义View
- Android自定义控件 -- 自定义View
- Android自定义View控件
- Android自定义View控件
- Android自定义View控件
- Android自定义View控件
- Android自定义View控件
- Android view 自定义控件
- Android 自定义控件-View
- 安卓自定义View
- 安卓自定义view
- 安卓自定义View
- 安卓自定义View
- 安卓自定义view
- 浅谈安卓自定义view(一):制作一个最最最简单的自定义view
- 自定义安卓控件
- 安卓----自定义控件
- 完整性级别(Integrity Level)、UAC和LoRIE(涉及IE保护模式)
- oracle 命令操作 @符号
- 符号链接获得设备名
- 排序算法分类和算法时间复杂度比较
- java线程研究---(4)暂停Thread:sleep
- 【Android自定义View】安卓制作自定义控件
- php-cgi相关概念以及php运行模式
- HTML5游戏引擎lufylegend深入浅出 - 引擎介绍&原理
- autowired 和Resourse的差别
- js与el小解
- java代码--Fibonacci数列(递归与非递归效率)
- mysql
- 體影之道
- HorizontalScrollView 实现水平滚动