`
yaochaosheng
  • 浏览: 53356 次
  • 性别: Icon_minigender_1
  • 来自: guangzhou
文章分类
社区版块
存档分类
最新评论

android中使用shader实现渐变效果

阅读更多

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();

 

 

  • 大小: 47.7 KB
  • 大小: 10.1 KB
  • 大小: 57.7 KB
  • 大小: 17.1 KB
  • 大小: 57.5 KB
分享到:
评论

相关推荐

    android TextView 文字部分渐变

    在Android开发中,有时我们需要为应用的用户界面增添一些视觉上的亮点,比如让TextView中的文字部分呈现出渐变色效果。这不仅可以吸引用户的注意力,也可以使界面更具设计感。本篇文章将详细讲解如何在Android中实现...

    Android——实现光点模糊渐变的自旋转圆环特效,实现水滴波纹特效源码

    本文将探讨如何在Android中实现两种独特的视觉效果:光点模糊渐变的自旋转圆环特效以及水滴波纹特效。这两种特效能为你的应用程序增添动态美感,提升用户的交互体验。 首先,我们来看自旋转圆环特效。这种效果通常...

    Android-渐变颜色渐变文字渐变图像GradualshowcolorAndResourse

    `GradualshowcolorAndResourse`项目专门探讨了如何在Android应用中实现这些渐变效果。下面将详细阐述相关知识点。 1. **颜色渐变**: 在Android中,可以使用`LinearGradient`或`RadialGradient`类来创建线性或径向...

    Android常见Shader着色器效果源码.zip

    在Android开发中,Shader是一种强大的工具,用于在图形渲染时应用自定义的着色效果。Shader着色器通常被用来实现复杂的视觉效果,如颜色变换、光影效果、纹理映射等,极大地提升了用户体验。本资源"Android常见...

    android特效GaussPager高斯模糊渐变的滑动效果.rar

    我们可以使用`PorterDuffColorFilter`或者自定义Shader来实现这一效果。 5. **ViewPager**:Android自带的视图切换控件,通常用于展示多个类似内容的页面,用户可以通过左右滑动来切换。在GaussPager中,ViewPager...

    Android Paint渐变色练习示例

    本文将深入探讨如何使用`Paint`类实现渐变色效果,特别是在自定义`View`中的应用。 渐变色在UI设计中广泛使用,可以为界面增添动态感和视觉吸引力。在Android中,`Paint`类提供了多种渐变色的实现方式,包括线性...

    android 仿京东,滚动屏幕标题栏渐变

    描述中提到"只使用自定义scrollview 实现标题栏渐变",这意味着开发者可能自定义了一个ScrollView子类,并在其中添加了处理滚动事件和渐变效果的逻辑。自定义视图的好处在于可以自由地扩展和修改组件的行为,满足...

    Android LinearGradient 线性渐变渲染

    【Android UI】Paint Gradient 渐变渲染 ① ( LinearGradient 线性渐变渲染 | 设置渲染方向 | 设置渲染颜色 | 设置渲染模式 | MIRROR ) https://blog.csdn.net/shulianghan/article/details/125047457 博客配套源码 ...

    Android编程实现带渐变效果的圆角矩形示例

    本文将详细介绍如何使用Android编程实现带渐变效果的圆角矩形,并对其涉及的Android界面布局及属性设置相关操作技巧进行详细解释。 一、Android界面布局 在Android编程中,界面布局是指在用户界面上排列控件的方式...

    Android Textview实现颜色渐变滚动效果

    本文将详细介绍如何使用 Android Textview 实现颜色渐变滚动效果,供读者参考。 一、自定义 Textview 控件 首先,我们需要继承 android.support.v7.widget.AppCompatTextView,创建一个自定义的 Textview 控件,名...

    Android文字随下载进度渐变

    "Android文字随下载进度渐变"这个主题就涉及到了自定义UI组件的实现,特别是如何让文字颜色随着进度条的进度变化而渐变,模拟音乐类应用中的歌词显示效果。这种效果能够吸引用户的注意力,并使界面更具动态感和交互...

    Android-LinearGradient实现TextView字体渐变的效果

    3. **Shimmer效果**:如果想要实现“shimmer”效果,即文本闪烁或流动的渐变,我们可以使用Android Design Library中的`ShimmerFrameLayout`。这个布局可以为内部的子视图添加闪烁效果。以下是如何使用它的示例: `...

    Android 圆形颜色渐变进度条 自定义控件

    可以使用`Shader`的`LinearGradient`或`SweepGradient`来实现颜色渐变。`LinearGradient`沿指定方向创建线性渐变,`SweepGradient`则沿圆周创建环形渐变。这里我们将使用`SweepGradient`,因为它更适合圆形进度条。 ...

    android 自定义渐变进度条,圆形,长条行,长方形

    在Android中,我们可以使用`LinearGradient`、`RadialGradient`或`SweepGradient`等类来创建不同的渐变效果。比如,要创建一个从红色到蓝色的线性渐变,可以在`onDraw()`方法中绘制渐变背景,然后在其上绘制进度条。...

    Android 通过ScrollView实现的渐变导航栏

    2. 自定义GradientNavBar视图:为了实现渐变效果,你需要创建一个自定义视图类,继承自View或AppCompatImageView,然后重写onDraw()方法,用Canvas绘制颜色渐变。你可以使用LinearGradient或者RadialGradient来创建...

    Android渐变圆环Demo

    本示例项目“Android渐变圆环Demo”聚焦于如何实现一个具有动画效果的渐变色圆环。这个圆环不仅展示了色彩的平滑过渡,还添加了动态效果,提升了用户体验。 首先,我们要理解自定义View的基本概念。在Android中,...

    Android图片滑动渐变

    在实现滑动渐变时,我们可能需要使用Shader类,它是Android图形库中用于定义颜色和纹理模式的工具。Shader有多种类型,如LinearGradient、RadialGradient和SweepGradient,其中LinearGradient适合实现水平或垂直的...

    Android 自定义View实现环形带刻度颜色渐变的进度条

    对于渐变效果,可以使用`Shader`对象,比如`LinearGradient`,设置起始颜色和结束颜色,然后应用到`Paint`上。在`onDraw()`中,根据进度值计算弧度,调用`canvas.drawArc()`方法画出部分圆弧。为了实现顺时针或逆...

    android 自定义view 背景渐变色 代码可运行

    总的来说,这个自定义View Demo展示了如何在Android中创建一个动态背景渐变效果,它不仅可以根据用户设定的颜色范围变化,还可以实现轮播式的颜色过渡。这对于那些追求独特用户体验的应用来说,是一种非常有价值的...

    Android Shader应用开发之霓虹闪烁文字效果

    在Android Shader应用开发之霓虹闪烁文字效果中,需要使用LinearGradient类来实现渐变颜色效果。LinearGradient类是一个线性渐变的实现类,能够在两个颜色之间实现渐变效果。在本示例中,我们使用LinearGradient类来...

Global site tag (gtag.js) - Google Analytics