android中使用shader实现渐变效果
2012-05-04 10:03
711 查看
android中可以使用多种shader对图像进行渲染,常见有下:
BitmapShader位图
LinearGradient线性
RadialGradient光束
SweepGradient梯度
ComposeShader混合
基本步骤是:
1.首先创建好要设置的渲染对象shader
2.接着使用paint对象的setShader方法传入该shader对象(然后刷新页面,触发onDraw方法则可使用新的渲染对象画图了!!)
实例关键代码:
bm = BitmapFactory.decodeResource(getResources(), R.drawable.girl);
paint = new Paint();
colors = new int[]{Color.RED,Color.GREEN,Color.BLUE};
bitmapShader = new BitmapShader(bm, TileMode.REPEAT, TileMode.MIRROR);
——横向使用重复模式,纵向使用镜像模式绘制bm位图至整个屏幕
linearGradient = new LinearGradient(0, 0, 100, 100, colors, null, TileMode.REPEAT);
——从(0,0)至(100,100)的位置设置color数组中颜色的线性渐变,其他剩余空间为此空间的重复模式。
radialGradient = new RadialGradient(100, 100, 80, colors, null, TileMode.REPEAT);
——以(100,100)为圆心,80为半径,以color数组中颜色绘制重复模式的光束渲染
sweepGradient = new SweepGradient(100, 100, colors, null);
——以(100,100)的位置为中心,以color数组中颜色绘制梯度渲染
composeShader = new ComposeShader(linearGradient, radialGradient,PorterDuff.Mode.DARKEN);
——混合以上多种渲染而成
相应结果图片见附件。
paint.setShader(composeShader);
postInvalidate();
BitmapShader位图
LinearGradient线性
RadialGradient光束
SweepGradient梯度
ComposeShader混合
基本步骤是:
1.首先创建好要设置的渲染对象shader
2.接着使用paint对象的setShader方法传入该shader对象(然后刷新页面,触发onDraw方法则可使用新的渲染对象画图了!!)
实例关键代码:
bm = BitmapFactory.decodeResource(getResources(), R.drawable.girl);
paint = new Paint();
colors = new int[]{Color.RED,Color.GREEN,Color.BLUE};
bitmapShader = new BitmapShader(bm, TileMode.REPEAT, TileMode.MIRROR);
——横向使用重复模式,纵向使用镜像模式绘制bm位图至整个屏幕
linearGradient = new LinearGradient(0, 0, 100, 100, colors, null, TileMode.REPEAT);
——从(0,0)至(100,100)的位置设置color数组中颜色的线性渐变,其他剩余空间为此空间的重复模式。
radialGradient = new RadialGradient(100, 100, 80, colors, null, TileMode.REPEAT);
——以(100,100)为圆心,80为半径,以color数组中颜色绘制重复模式的光束渲染
sweepGradient = new SweepGradient(100, 100, colors, null);
——以(100,100)的位置为中心,以color数组中颜色绘制梯度渲染
composeShader = new ComposeShader(linearGradient, radialGradient,PorterDuff.Mode.DARKEN);
——混合以上多种渲染而成
相应结果图片见附件。
paint.setShader(composeShader);
postInvalidate();
相关文章推荐
- Android 自定义View 使用ShapeDrawable加BitmapShader实现图片局部放大效果
- android 使用BitmapShader实现圆形以及放大镜效果
- Android shape的使用实现圆角,虚线,渐变等效果
- Android 使用xml实现边框阴影,背景渐变效果(附有RGB颜色查询对照表)
- Android 使用xml实现边框阴影,背景渐变效果(附有RGB颜色查询对照表)
- 使用TransitionDrawable实现渐变效果
- Android使用自定义View实现360手机卫士波浪球进度的效果
- Android 使用RadioGroup和RadioButton实现单选效果
- android 使用viewpager实现广告轮播效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- android 中win10 使用uwp控件实现进度条Marquez效果
- LinearGradient在android开发中实现字体渐变效果实例
- Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果
- Android的TitleBar实现透明度渐变效果
- Android-使用ViewGroup实现左右滑动切换界面以及界面裂开的效果
- android 使用LinearGradient实现手机开机文字闪烁效果
- Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果
- Android控件之使用ListView实现时间轴效果
- 【Shader】用一张渐变图实现卡通渲染效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果