android为我们提供的很多View都是继承与View的【美

时间:2019-09-30 15:37来源:美高梅手机游戏网站
Android开发中,我们在自定义view的时候,通常都是既能让我们的自定义的view在代码中动态添加,又能在xml文件中实现,当我们要实现在xml中实现布局的时候,就需要我么自定义一些我们

Android开发中,我们在自定义view的时候,通常都是既能让我们的自定义的view在代码中动态添加,又能在xml文件中实现,当我们要实现在xml中实现布局的时候,就需要我么自定义一些我们自己的属性,通常获取这些属象的时候,都是给属性一个名称,然后确定属性的数据格式。这样我们就可以在xml中定义了。

概述

Android已经为我们提供了大量的View供我们使用,但是可能有时候这些组件不能满足我们的需求,这时候就需要自定义控件了。自定义控件对于初学者总是感觉是一种复杂的技术。因为里面涉及到的知识点会比较多。但是任何复杂的技术后面都是一点点简单知识的积累。通过对自定义控件的学习去可以更深入的掌握android的相关知识点,所以学习android自定义控件是很有必要的。记得以前学习总是想着去先理解很多知识点,然后再来学着自定义控件,但是每次写自定义控件的时候总是不知道从哪里下手啊。后来在学习的过程中发现自己跟着去写一些简单的自定义控件,然后在这个过程中遇到了没有掌握的知识点再去学习。不仅自定义控件的能力有所提高。其它的知识也有了很好的巩固和认识。所以,今天写的是怎么去自定义一个控件。而不是里面涉及到的细化知识点。一个东西我们先知道怎么用,再去问为什么。


但是有时候,我们的数据格式比较特殊,准确的说是没有数据格式,只是一些值,我们给定的值,比如说自定义一个view是否可以显示;

自定义控件需要考虑的点

根据Android Developers官网的介绍,自定义控件你需要以下的步骤。(根据你的需要,某些步骤可以省略)

自定义 View主要步骤:

1、自定义View的属性
2、在 View 的构造方法中获得我们自定义的属性
3、重写 onMesure()
4、重写 onDraw()

美高梅手机游戏网站 1

1、创建View

1、自定义 View 的属性

如上所示,它并没有准确的格式,我们在获取值的时候是通过

2、处理View的布局

1. 编写 values/attrs.xml,在其中编写 styleable 和 item 等标签元素,format,
<resources>
    <declare-styleable name="Test">
        <attr name="text" format="string"/>
        <attr name="num" format="integer"/>
        <attr name="string" format="string" />
    </declare-styleable>
</resources>

美高梅手机游戏网站 2美高梅手机游戏网站 3

3、绘制View

2、在 View 的构造方法中获得我们自定义的属性

它是通过属性集合调用getValue()方法来获取值得,但是返回的结果是boolean类型的,这个返回的结果是返回是否有值,并不是我们的值,它的值是在outValue中,

4、与用户进行交互

1. 自定义一个TestView(extends View )类,通常需要重写三个构造方法,第二个必须重写。
public class TestView extends View{

    // 在代码中 new TestView(context) 时调用
    public TestView(Context context) {
        this(context,null);
    }

    // 加载布局文件中的 TestView 时调用
    public TestView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    // 一般通过第二个构造方法调用
    public TestView(Context context, AttributeSet attrs, int def) {
        super(context, attrs, def);
    }
}

美高梅手机游戏网站 4

5、优化已定义的View

上面列出的五项就是android官方给出的自定义控件的步骤。每个步骤里面又包括了很多细小的知识点。我们可以记住这五个点,并且了解每个点里包含的小知识点。再加上一些自定义控件的练习。不断的将这些知识熟练于心,相信我们每个人都能够定义出优秀的自定义控件。接下来我们开始对上面列出的5个要点进行细化解说

2. 在布局文件中 TestView 使用自定义的属性(注意namespace),
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.example.mytestview.TestView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        view:num="520">
    </com.example.mytestview.TestView>

</LinearLayout>

编辑:美高梅手机游戏网站 本文来源:android为我们提供的很多View都是继承与View的【美

关键词:

  • 上一篇:没有了
  • 下一篇:没有了