Android初体验(三)自定义view
自定义view
一、新建一个继承view的类
新建的类至少需要一个构造器,代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15public class TopView extends View {
public TopView(Context context) {
super(context);
}
public TopView(Context context, AttributeSet attrs) {
super(context, attrs);
}//如果需要在布局中定义组件属性,需要这个构造方法
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}//这个方法一般用来绘图
}
二、布局文件引用自定义view
两种方式:
- 1、在
xml
中设置组件,和使用button
类似。 - 2、
activity
中设置如:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package cn.wangsr.helloword;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.LinearLayout;
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout = findViewById(R.id.ll);
TopView topView = new TopView(this);
linearLayout.addView(topView);
}
}
重写ondraw()方法绘画
在ondraw()
方法中:
Paint
:画笔对象1
2Paint paint = new Paint();
paint.setColor(0xff123456);//设置颜色,前两位为透明度canvas:画布
1
canvas.drawRect(0,0,100,100,paint);//画矩形
重新绘制:调用invalidate()方法,需使用多线程配合handler调用
因为Android规定只有主线程才能更新UI,而且不要在主线程执行耗时操作(如sleep超过5s)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com
文章标题:Android初体验(三)自定义view
本文作者:子非鱼
发布时间:2018-11-29, 19:01:54
最后更新:2018-12-09, 11:07:04
原始链接:https://Wangsr.cn/2018/11/29/2018-2018-11-29-Android初体验-三-自定义view/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。