Android 自定义View 使用ShapeDrawable加BitmapShader实现图片局部放大效果
来源:互联网 发布:linux汉字输入法 编辑:程序博客网 时间:2024/05/21 21:48
一些说明:
> BitmapShader中放置的Bitmap是原图的缩放后的
> ShapeDrawable的setBounds() 仅仅是设置一块shape的外矩形区,如用英语表示:size-region
> ShapeDrawable中图片默认draw的原点为:相对于图片自身的坐标(0,0)
> ShapeDrawable如果要对图片进行矩阵变化,可以使用它的shader的setLocalMatrix()
> ShapeDrawable如要显示成图片某一点为原点,需要设置它的shader的matrix,该matrix进行平移
> 因shader中的图片进行了缩放,所以平移时的坐标点也要乘以缩放值
关于上面的效果图说明:
> 上面的不规则图片,是由canvas绘制三个图形而来的,paint设置了shader
> 下方绘制了一张原图,放大镜效果:在指定下方的原图区内,有放大效果
> 其它黑色背景区内所看到的放大镜效果:只是因shader的TileMode为REPEAT
关于平移原理,简单放置了一张草图:shader/bsview.png
/** * desc : 通过canvas绘制图形,paint中设置了BitmapShader * author : stone * email : aa86799@163.com * time : 2016/11/28 16 44 */public class BitmapShaderView extends View { private Bitmap mSrcBitmap; private BitmapShader mShader, mShaderScale; private Paint mPaint; private int mBmW, mBmH, mMin; private ShapeDrawable mDrawable; private int mRadius; private Matrix matrix; private int mScale;}完整示例,见下文
我的自定义View项目地址: https://github.com/aa86799/MyCustomView (欢迎start&fork)
本文地址:https://github.com/aa86799/MyCustomView/tree/master/shader
0 0
- Android 自定义View 使用ShapeDrawable加BitmapShader实现图片局部放大效果
- Android使用BitmapShader图形渲染实现圆形、圆角和椭圆自定义图片View
- Android圆形图片不求人,自定义View实现(BitmapShader使用)
- Android圆形图片不求人,自定义View实现(BitmapShader使用)
- Android 图片局部放大效果
- 自定义View—使用clipPath或者BitmapShader实现圆角图片
- 图片的局部放大的效果实现
- 实现图片局部放大_放大镜效果
- js 实现 图片的局部放大效果
- 自定义view实现图片加影子的效果
- Winform图片局部放大效果
- android 使用BitmapShader实现圆形以及放大镜效果
- bitmapshader 实现图片的放大镜效果
- Android中使用自定义的view实现圆形图片的效果
- android 仿微信点击图片放大效果实现
- 实现局部放大图片功能
- android 自定义imageview实现 图片放大缩小
- Android自定义View【实战教程】4⃣️----BitmapShader详解及圆形、圆角、多边形实现
- Hibernate——Query查询
- Charts的使用
- 【LeetCode】
- 161211
- mac os 终端 退出相关的几个命令
- Android 自定义View 使用ShapeDrawable加BitmapShader实现图片局部放大效果
- TOJ 3307.Plants VS Zombies
- 十公里 myriametre
- Kafka Security 配置SSL
- 回溯法 之 素数环
- leetcode之Fizz Buzz
- springMVC的bean注入问题以及IOC容器
- Lua查找表元素过程(元表、__index方法是如何工作的)
- python --- 列表