ITBOX面试大全知识 | 解析

自定义View之总结

2016-07-16  本文已影响3389人  贤榆的榆
自定义View之总结

文章来自:Android程序员日记

作者:贤榆的鱼

参考阅读时间:5 min 15s

导读语:自定义控件只看这一篇,是不够的!

前言

在之前我先后写了"自定义View之扩展式"、"自定义View之复合式"、"自定义View之完全自定义",在这三篇文章中我都分别给出了一个例子。当然了,例子其实是相对比较简单的,主要原因可能是个人水平有限吧!但尽管如此,我也尽可能把我要讲的内容表述的更清晰一些!那么为了更好的在我们的脑海里构建这个知识框架(这句话太专业,让我写起来都感到了满满的压力!其实就是让某些重要的或是会用到的内容,能够在我们大脑里留下个更深刻的印象,并让他们之间有更多的联系。)以便于在我们需要的时候,更容易提取出来用!为此,写个总结也是一个不错的方法!这个观点是来自《暗时间》!

正文

我们暂且将自定义View分为了扩展式、复合式和完全自定义三种类型(当然我们也可以按别的分)!他们看起来确实有一定的从易到难的梯度关系!不管怎样,我们将这前面三遍中的知识点和自定义View的一些知识点做一个总结!好处就是——可能会有跟多人关注我的“Android程序员日记”的公众号吧!

都说程序员都是从零开始计数的,那我们开始吧!

[ 0 ]关于自定义View的三个构造方法

[ 1 ]关于三种自定义View

[ 2 ]常用的回调方法

[ 3 ]为自定义View添加并使用自定义属性的过程

Step 1 : 在Values下创建attrs.xml(当然也可以以别的名字命名,无限制),然后在该文件中添加自定义View的自定义属性!

Step 2 : 在自定义View的构造方法中获取自定义属性值,并将值配予相应的位置!

Step 3 :在xml中使用自定义控件及配置其自定义属性

注:在xml使用自定义控件时一定要加 :

xmlns:custom="http://schemas.android.com/apk/res-auto"

当然你也可以写成

xmlns:custom="http://schemas.android.com/apk/res/com.timen4.t3"(com.timen4.t3是应用的报名)

这两种方式没有本质上的区别。至于custom随便你喜欢命名什么都可以。

[ 4 ]完全自定义控件中我们自己支持wrap_content和padding的代码

[ 5 ]为自定义View定义并实现接口回调的过程

本段示例代码来自"自定义View之复合式",为了总结的需要,做了一些注释上的修改,并简化为实现一个回调方法!

Step 1: 定义回调接口(自定义View类中操作)

public interface TopBarClickListener {
    void leftClick();
}

Step 2: 暴露回调接口(自定义View类中操作)

public void setOnTopbarClickListener(TopBarClickListener mListener){
    this.mListener=mListener;
}

Step 3: 调用回调接口(自定义View类中操作)

private void bindEvents() {
    mLeftButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if(mListener!=null){
                mListener.leftClick();
            }
        }
    });
}

Step 4: 实现回调回调接口及方法(在实例化自定义View对象的类中)

mtopBar.setOnTopbarClickListener(new TopBar.TopBarClickListener() {
    @Override
    public void leftClick() {
        Toast.makeText(MainActivity.this,"上一张",Toast.LENGTH_SHORT).show();
        if (index<=0){
            index=3;
        }else{
            index--;
        }
        iv_image.setImageResource(images.get(index));
    }

后记

好了,这篇总结就这么多了!我必须再次强调一次,本文最最重要的一句话,就是放在最前面的导读语——自定义控件只看这一篇,是不够的!这句话我没开玩笑,你不信也没关系,反正我是不会在哪我的美貌做赌注了!

其实,不只是我对自己写的东西不自信,而是无论是我这一篇,还是某个大牛写的某一篇。我都觉得自定义View看某一篇是不够的!对于初学者或新手而言更是如此。因为正如我在我在前言中写道的一样,我们都在构造自己的知识架构。我们需要从更多的角度,去理解我们学到的或是要学习的内容!这样才更有助于我们去理解和记忆!也才更有助于我们去实际应用!

最后总结一句话吧——“我们学习的任何事物”看“某一篇”都是不够的!


喜欢可以关注我微信公众号
分享绝不止于Android!


喜欢请关注公众Android程序员日记
上一篇 下一篇

猜你喜欢

热点阅读