自定义UI
自定义其实就是自定义的控件,可以自己随意的定义其的大小及形状
代码较为简单,如下:
package com.example.myas_018;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/7/8 0008.
*/
public class MyButton extends View {
private List<Float[]> list=new ArrayList<>();
public MyButton(Context context) {
super(context);
}
public MyButton(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MyButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MyButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置画布的背景颜色
// canvas.drawColor(Color.BLUE);
//实例化一个路径
Path path=new Path();
path.moveTo(100,100);
path.lineTo(300,100);
path.lineTo(300,300);
path.lineTo(100,300);
path.moveTo(100,200);
path.lineTo(380,200);
path.moveTo(200,100);
path.lineTo(200,300);
path.quadTo(200,350,100,400);
//实例化一个画笔
Paint paint=new Paint();
paint.setColor(Color.YELLOW);
//设置空心
paint.setStyle(Paint.Style.STROKE);
//设置画笔的粗细
paint.setStrokeWidth(10);
canvas.drawCircle(220,250,220,paint);
//画路径
canvas.drawPath(path,paint);
}
得到的效果为:
Adroid事件处理
Android提供了两种方式的事件处理
好处:开发出界面友好人机交互良好的Android应用
常用的监听器
触摸事件解析