从5.13号的入职开始,至今已过了一周。从行署到景峰,没想到这样曲折,手续也未完全办完,心情起起落落。通过和师哥们的谈话,经历过一晚的思想斗争,还是将心放在Android上,以后再逐渐熟悉后台。
情况:5.14周二晚,师哥让做一个动画调研,调研过程中,获取到一些知识。
本周学习清单:
- canvas和paint学习
- shader用法
- path用法
- typedarray用法
- git的使用
1.canvas和paint学习
Canvas本意是画布,可以使用canvas.drawXXXX来画一些基本图形。而paint是画笔,所调用的有颜色、粗细、材质等等。这篇文章讲得特别好,《Android高级进阶——绘图篇(一)Canvas基本操作》。canvas的基本使用方法提供文章参考,比较简单,主要是它的操作过程需要说明一下。
canvas的操作过程: 新建一个类,继承View类,并继承View的几个方法,重写onDraw方法,在onDraw中进行绘图,实现效果。写的时候出现了一个问题,在activity_main方法中对在setContentView里参数是R.layout.activity则造成了nullpointException,但是传入自定义类的实例则不会这样。
参考文章:Android中Canvas绘图基础详解(附源码下载)
2.shader的用法
shader着色器,可以利用shader来对各个View进行着色,这次只使用了线性着色器,代码如下:
//着色器
private void shaderDraw(){
if(paint == null){
paint = new Paint();
}
paint = new Paint();
int w = getWidth();
int h = getHeight();
int[] colors = new int[]{Color.BLACK,Color.RED,Color.YELLOW,Color.BLUE};
float[] positions = null;
LinearGradient linearGradient = new LinearGradient(0,h,w,h,colors,positions, Shader.TileMode.CLAMP);
paint.setShader(linearGradient);
}
显示效果是有一个渐变色,总共四个颜色。基本操作可以说的比较少,也一样是推荐文章:Android Shader着色器/渲染器
3.path用法
path理解起来很简单,本意是路径,就是两个或者两个以上的点连接成一条路径。可以利用path来做很多炫的效果。学习过程中看到了一篇很全面的文章,就不用写了。。Android开发之Path详解。
4.typedarray用法
也是第一次接触这个东西,但是可以说我们非常的熟悉。类似于android:layout_width="match_parent"
,我们在用自定义View的属性时也是如此,比如:voiceView:rectWidth="5dp"
。具体的操作过程如下:
(1)在/res/value下建立一个attrs.xml。下面引用的也是demo中参考的代码。
<resources>
<declare-styleable name="voiceView">
<!--中间线的颜色,就是波形的时候,大家可以看到,中间有一条直线,就是那个-->
<attr name="middleLine" format="color" />
<!--中间线的高度,因为宽度是充满的-->
<attr name="middleLineHeight" format="dimension" />
</declare-styleable>
</resources>
其中format是指定类型,它有其他的类型包括(word表格复制不过来,):
format | 类型 |
---|---|
reference | 引用,参考某一资源ID |
string | 字符串 |
color | 颜色值 |
dimension | 尺寸值 |
boolean | 布尔值 |
integer | 整型值 |
float | 浮点值 |
fraction | 百分数 |
enum | 枚举值 |
flag | 位运算 |
(2)在自定义View中添加关于typedarray的代码:
private void initAtts(Context context, AttributeSet attrs) {
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.voiceView);
middleLineHeight = typedArray.getDimension(R.styleable.voiceView_middleLineHeight, 4);
typedArray.recycle();
}
(3)直接在xml文件中用:
<yj.com.mylibrary.VoiceLineView
android:id="@+id/voicLine_line"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
voiceView:middleLineHeight="1dp"
tools:ignore="MissingConstraints" />
5.git的使用
git的使用,只看了一篇文章,流程走下来就会了。文章是:Git Bash使用详细教程
其余资料如下:
(1)Git常用指令
(2)Git工作流程