持续编辑中,尚未完成
先记录一下bitmap相关知识,因为在绘制图片相关的时候会用到bitmap。
BitMap
BitMap在Android中表示已经加载好的图片资源,通过BitMapFactory来加载图片资源,有四种方法,分别是decodeFile(从文件中读取图片),decodeResource(从资源,drawmap目录),decodeStream(从输入流中读取)和decodeByteArray(从字节数组加载),从资源和文件读取的方法,都会转换为输入流然后调用decodeStream方法,最终会调用两个native方法读取资源生成bitmap。
Options参数
控制Options参数可以用来提高bitmap加载速度和控制bitmap的大小。举个例子,imageView里面需要加载一个分辨率很高的图像,可以通过设置采样率的方式对图片进行缩放,避免内存溢出和提升加载速度。
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
val options = BitmapFactory.Options()
options.inSampleSize=4
val bitmap =
BitmapFactory.decodeResource(resources, R.drawable.img,options)
canvas?.drawBitmap(bitmap,0F,0F,Paint())
}
在这个简单的例子