博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 自定义控件的实现
阅读量:7191 次
发布时间:2019-06-29

本文共 2221 字,大约阅读时间需要 7 分钟。

原文地址:

下面我们介绍android自定义控件的实现,简单说就是指自己继承原有控件并增加一些方法和属性

首先我们需要在资源文件里定义所需的属性

在res/values下新建attr.xml

内容如下

然后我们定义一个AlphaImageView类,继承ImageView

package com.happyrxk.my;import java.util.Timer;import java.util.TimerTask;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.widget.ImageView;public class AlphaImageView extends ImageView{        private int alphaDelta = 0;        private int curAlpha = 0;        private final int SPEED = 300;        private final int CHANGE = 0x110;    Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            // TODO Auto-generated method stub            super.handleMessage(msg);            if(msg.what==CHANGE){                curAlpha+=alphaDelta;                if(curAlpha>255){                    curAlpha = 255;                }                AlphaImageView.this.setAlpha(curAlpha);            }        }            };    public AlphaImageView(Context context, AttributeSet attrs) {        super(context, attrs);        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AlphaImageView);                int duration = typedArray.getInt(R.styleable.AlphaImageView_duration, 0);        alphaDelta = 255 * SPEED /duration;        // TODO Auto-generated constructor stub    }    @Override    protected void onDraw(Canvas canvas) {        // TODO Auto-generated method stub        super.onDraw(canvas);        this.setAlpha(curAlpha);        final Timer timer = new Timer();        timer.schedule(new TimerTask(){            @Override            public void run() {                // TODO Auto-generated method stub                Message msg = new Message();                msg.what = CHANGE;                if(curAlpha>=255){                    timer.cancel();                }else{                    handler.sendMessage(msg);                }                            }                    }, 0, SPEED);    }        }

在我们在xml中用自定义控件是的方法如下

 

 

转载于:https://www.cnblogs.com/happyDays/p/3231257.html

你可能感兴趣的文章
如何不用那么担心成为一个坏程序员
查看>>
基于SSM的驾校预约报名管理系统-java驾校预约报名管理系统
查看>>
#8 bash的颜色显示规则
查看>>
用python写的判断质数和登录程序升级版
查看>>
18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 L
查看>>
Apache安装部署
查看>>
CCNA网络技术实验手册:Cisco IOS备份与升级
查看>>
闲谈企业管理--执行力的问题
查看>>
相关VB.NET文件对象基础知识讲解
查看>>
简单描述Servlet Filter(过滤器) 相关知识
查看>>
生成自增的编号,生成订单号
查看>>
SqlSever2005 一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定...
查看>>
企业内部IT一体化系列之四:WEB平台 SharePoint服务配置
查看>>
ksh里三个月之外的文件移动脚本
查看>>
MSDN Windows8 中文版 下载地址
查看>>
MYSQL 中实现时间比较的方法
查看>>
2014,LTE必读!
查看>>
shell遍历一个日期范围
查看>>
JAVA桥接模式不同情况实现总结
查看>>
Linux基础之命令Screen
查看>>