您的位置:首页 > 移动开发 > Android开发

Android自定义view基础详解及开发流程

2017-05-26 11:18 465 查看
自定义view应该说是Android开发通往高级开发的必经之路,自定义view也是很多Android开发者不愿意去触碰的知识点,自定义view到底是什么样子今天我就要揭开自定义view的黑暗面纱。个人学习总结认为自定义view大致分为以下几个过程:

1.自定义view单纯的用画笔绘制view(死view)

2.自定义view增加手势

3.自定义view增加动画

4.自定义view手势动画交互     ,这4步让我们一步一步的来探索学习

有些ui给的图,我们的现有控件不能满足,所以这时候就需要我们自己去自定义view尽量和ui图接近。工作几年之后如果你还说你对自定义view不了解,哪就尴尬了。所以让我们静下心来慢慢的学习吧。

今天主要介绍一下自定义view的基础属性开发流程:(从最基础的每一步讲起)

1.要自定义view首先要创建一个 类继承View类如下:



2.就是重写他的3个构造方法,这里是和hongyang老师学的,一个属性的构造方法调用两个属性的构造方法两个属性的构造方法调用三个属性的构造方法,最后的初始化数据都放在第三个中,这样写不管调用哪一个构造方法,初始化的数据都不会空指针。



3.以上写完之后就要去定义我的view的属性,属性在res下面创建一个attrs.xml页面。这个页面的作用就是定义我们的参数,不把参数写死,在布局中我们可以任意定义大小尺寸方法如下:



name就是我们的属性,format就是属性对应的参数的类型,有dimension就是dp,color就是颜色值,Integer就是float类型的等这些都是常用的数据类型。

4.参数定义好了我们就要使用,接下来就是如何使用刚刚定义的参数,在哪里使用两个问题:首先是在我们布局中使用我们的参数,在跟布局中定义:

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

这句话是不能少的,这里的app可以随便取,然后就是引用我们的view了

4000

<com.example.administrator.myview.PopuView
android:id="@+id/po"
android:layout_width="300dp"
android:layout_height="200dp"
android:layout_gravity="center"
app:ridus="5dp"
app:popu_bg="@color/colorAccent"
/>

引用view就是 报名+view的名字,这里的app参数要和我们上面定义的名字相同,通过app这个名字访问我们attrs里面定义的参数,注意参数类型一定要对应,color就要填color,dimension就是对应dip/dp。不能有误呀。

5.参数定义好了,下面就是到我们的view类中去获取参数值来使用了。我们之前说了初始化数据都要放到第三个构造方法中去,所以获取参数就是在第三个构造方法中获取

public PopuView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);

TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.PopuView,0,0);
ridus = a.getDimension(R.styleable.PopuView_ridus,5);
popu_bg = a.getColor(R.styleable.PopuView_popu_bg,0xFF4081);
a.recycle();
}

这里获取的就是我们attrs.xml中的属性。在这里给属性赋值,以便我们绘制的时候使用这些参数,绘制我们的view大小尺寸。

自定义view的基础开发流程就是这些,对于 ondraw();方法这里不多介绍,到下一篇我会详细介绍view开发中必不可少方法,onMeasure()和ondraw();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: