自定义View(一)

#### 不知不觉告别了2016,迎来了2017年,回顾这一年,收获颇多.这一年结识了志同道合的一群小伙伴,每天都逗逼这讨论着 美女、技术、以及互相撩骚,充满着欢乐而又充实的生活。很感谢我的小伙伴们,都是满满的正能量。
- 如何自定义 View 呢?
- 如何把写入 xml 里面的属性和值,告知 View 呢?
- 如何把我们想要的 View 显示到屏幕上呢?
###### 自定义View 首先集成 系统提供的 View 来是我们进行扩展,这就是 继承的好处。


  + 自定义 View 
    + 通过继承 View 来重写 View 的构造方法。

 <code> public CustomView(Context context) {
super(context);

}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
#### 自定义 View 就这样开始了旅途。
- 自定义属性和获取自定自定属性的值
- 在 Res\values\ 文件下新建 attrs.xml 文件来自定义所需要的属性,通过<declare-styleable name=""><attr name="text" format="string"></attr></declare-style>来定义所需要的属性。

- 在 xml 下引用自定义的属性 首先引用自定义属性也需要知道属性来自哪里,就好比我们引用系统的,系统显示就是
android:layout_width=”50dp”引用来自系统的都会有一个 android 这个字段来标识 我们引用的是来自系统提供的 属性,Android 为了区分属性是引用来自系统的还是 自定义的也给我们提供了代码,来进行区分,那就是在跟布局的标签下面 引用一个属性来进行区分xmlns:custom=”http://schemas.android.com/apk/res-auto”这样就可以在自定义的 View 下面来引用 自定义的属性了。就可以通过我们自定义的标识符来获取了(custom ps: 这个标识符是可以随便命名的)自定义的属性了,用法和系统的是一样的。

custom:text=”跳过”
custom:textColor=”#ffffff”
custom:textSize=”14sp”

- 在 View 里面获取自定义的属性值
- 通过系统提过的方法来进行获取
context.obtainStyledAttributes()返回的数组来获取我们的属性,这个重载的方法,支持接受多个或一个不同的参数。

TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CountDownProgressbar);
//提示语
mTextString = array.getString(R.styleable.CountDownProgressbar_text);
//园的半径
mCircleColor = array.getColor(R.styleable.CountDownProgressbar_circleColor, Color.parseColor(“#ff0000”));
mTextSize = array.getDimension(R.styleable.CountDownProgressbar_textSize, 28);
mTextColor = array.getColor(R.styleable.CountDownProgressbar_textColor, Color.parseColor(“#ffffff”));
mProgressColor = array.getColor(R.styleable.CountDownProgressbar_progressColor, Color.RED);
array.recycle();//用来释放我们的引用,避免我们再次使用重新创建的错误

  `
- 鸡冻(激动)的时刻终于来临了,既然要使我们的 View 显示在手机上就需要把 View 画在屏幕上,如何进行绘制呢,就需要使用到最重要的一个方法 onDraw(),这个方法其实就像是画板一样我们可以随意的在上面画出想要的绘图。前提是你要会画;绘画当然少不了 画笔,Android  可能也想到了 还给我们提供了 一支特别的画笔那就是 Paint ,这个类提供了很多方法来进行绘画,比如画笔的粗细,绘制的颜色 等等。
通过重新 onDraw() 方发来开始绘制。  这个方法提供了一个 参数,那就是 canvas(顾名思义 画布) 这个参数给我也提供了好多功能,比如我们可以通过这个参数提供的方法绘制 圆 矩形, 圆弧】、文字等。
`
@Override

protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(“圆的X轴坐标”,”圆的Y轴坐标”,”圆的半径”,”画笔”);
}
`

自定义View 就可以开始接下来来的旅程了。想学习自定义 View 请点击 三精-大精wingAigeStudio启舰 可以学习 这几位的自定义 View 学习旅程来提高自身的技术。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值