Android 使用使用Kotlin自定义自定义View的方法教程的方法教程
最近想加强一下自定义view方面的学习,正好也在学习Kotlin,所以就尝试着用Kotlin写一下简单的自定义
view,下面这篇文章主要给大家介绍了关于Android使用Kotlin自定义View的方法教程,需要的朋友可以参考
下。
前言前言
随着google宣布kotlin作为官方开发语言,在Android中使用kotlin的趋势也越来越明显,最近被kotlin的文章轰炸了,所以决定
上手试一下,试过之后,感觉靠它灵简直有魔性。特别是一句话写出一个复杂的循环的时候,简直被惊呆。而且使用
AS,Java代码可以直接转成Kotlin。
效果图如下:效果图如下:
首先是这次自定义View的效果图,是一张饼图。如果是用java写的话也就几十行,觉得换成Kotlin的话可能会更少。
示例代码示例代码
主要的功能是可以任设定数据的个数,我这里是4个数据,可以任意设定每个数据的颜色。
#####首先上Kotlin代码#####
package top.greendami.mykotlinapp
import android.content.Context
import android.graphics.*
import android.util.AttributeSet
import android.view.View
/**
* Created by GreendaMi on 2017/4/10.
*/
class PPCircle : View {
var mDatas = ArrayList<Float>()
var mColors = ArrayList<Int>(4)
var mPaint: Paint = Paint()
constructor(mContext: Context) : super(mContext) {
val context = mContext
}
constructor(mContext: Context, mAttributeSet: AttributeSet) : super(mContext, mAttributeSet) {
initPaint()
val context = mContext
}
fun initPaint() {
mPaint.isAntiAlias = true
mPaint.style = Paint.Style.FILL_AND_STROKE
mPaint.color = 0xff44b391.toInt()
}
//长宽一致
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
val widthSpecSize = View.MeasureSpec.getSize(widthMeasureSpec)
val heightSpecSize = View.MeasureSpec.getSize(heightMeasureSpec)
val mLayoutSize = Math.min(widthSpecSize, heightSpecSize)
评论0