安卓绘制Canvas与坐标(一)

在安卓中对于绘制这个类Canvas使用总结.Canvas是安卓中负责绘制的类,其中有很多绘制方法以draw开头,有直线/圆/矩形等,使用这些相对方法不难.

LinearGradient l = new LinearGradient(0, 0, 200, 0, GraualColor, null, TileMode.MIRROR);

MIRROR_Paint = new Paint(Paint.ANTI_ALIAS_FLAG);
MIRROR_Paint.setShader(l);
MIRROR_Paint.setStyle(Paint.Style.FILL);
MIRROR_Paint.setStrokeWidth(100); 
      

这是一个渐变颜色的类,其能做到颜色的渐变,让你绘制的颜色不断发生改变.

GraualColor是一个颜色数组.

  tileMode 属性就是用于定义背景的显示模式:

disabled 默认值,表示不使用平铺

clamp 复制边缘色彩 

repeat X、Y 轴进行重复图片显示,也就是我们说要说的平铺

mirror 在水平和垂直方向上使用交替镜像的方式重复图片的绘制

现在需要使用一个Paint画笔,还这行你的绘制,简单来说,你用canvas创建一个画笔,在创建一个画笔,还实现的绘制.这些很简单,好理解.但在安卓中对坐标的理解就很能,安卓是以屏幕左上方为(0,0)原点,因为在绘制常存在Left,Top,Right,Bottom这些变量,需要你去填写.

Left这个值跟你的父类是有直接关系的,Left是你要绘制的子控件距离父控件的左边的距离

Top同理不解释

Right就不同了,就点很恶心,它是子控件的右边距离父类的左边的距离.一般等于 Left + width的大小,在安卓中都以左边进行对齐

Bottom同理不解释

  canvas 里面有一个方法translate这个方法可以改变原点的位置,我是这里理解的:

1.你有一个父类它包裹全局FILL (我这里都是没有title的)

2.这是在父类中你绘制的一条直线,那它相对的位置就是屏幕的(0,0).

3.如果这时你在里面又嵌套的一层布局,你在里面在写一条线,线以什么为原点呢??

4.我理解就是以这个新的布局的左上角为原点,你的画这条线相对的是新的布局

我就在想,为什么呢,可不可以理解,底层是调用translate这个方法不断的更改相对原点


你可能感兴趣的:(安卓)