Shader 又被称之为着色器,渲染器,它用来实现一系列的渐变,渲染效果。Android中的Shader包括以下几种:
1.BitmapShader 位图Shader
2.LinearGradient 线性Shader
3.RadialGradient 光束Shader
4.SweepGradient 梯度Shader
5.ComposeShader 混合Shader

BitmapShader的作用就是通过Paint对画布进行置顶Bitmap的填充,填充时有以下几种模式可以选择:
1.CLAMP 拉伸 拉伸的是图片最后的哪一个像素,不断重复
2.REPEAT 重复 横向、纵向不断重复
3.MIRROR 镜像 横向不断翻转重复,纵向不断翻转重复

以下例子,将一个矩形的图片,变成一张圆形的图片:

package com.example.administrator.myapplication;import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;/*** Created by Administrator on 2015/11/25 0025.*/
public class XfermodeView extends View {Paint paint;public XfermodeView(Context context) {super(context);init1();}public XfermodeView(Context context, AttributeSet attrs) {super(context, attrs);init1();}@Overrideprotected void onDraw(Canvas canvas) {canvas.drawCircle(500,250,200,paint);}public  void init1(){Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.test);BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);paint = new Paint();paint.setShader(bitmapShader);};}

下面把图片换成较小的ic_launcher图标,并且设置为REPEAT
如下:

   Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);paint = new Paint();paint.setShader(bitmapShader);

Shader 之 BitmapShader相关推荐

  1. android 使用BitmapShader实现圆形以及放大镜效果

    在一些显示用户头像的时候,大多数都是显示圆形的,而不是显示一个正方形或者长方形,这样显得很呆板,视觉效果也不好看,今天就用二种方式实现图片圆形显示的效果,在先讲这个效果实现之前,讲下BitmapSha ...

  2. Android绘图Canvas十八般武器之Shader详解及实战篇(上)

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前言 Android中绘图离不开的就是Canvas了,Canvas是一个庞大的知识体系,有java层的,也有jni层深入到Frame ...

  3. Android之Shader完全理解指南

    Shader,中文翻译着色器,老实说,我的专业不是图像处理之类的,所以我也不清楚着色器到底是干嘛的,如果非要我在字面上加以理解,通俗就是给某个机器拿着一只画笔在白纸上画东西,而这个机器就叫着色器,我也 ...

  4. Android Bitmap圆角

    代码如下: public Bitmap transform(Bitmap source) {int size = Math.min(source.getWidth(), source.getHeigh ...

  5. 7:MD5、圆形图片、动态换肤

    1.获取一个文件的MD5值(可处理大文件) public static String getSkinMD5(File file) {FileInputStream fis = null;BigInte ...

  6. Android 优秀UI控件 ---- FlowingDrawer

    1,前天在git上看到了一个不错的控件 ,最近两天项目也没有那么赶了,就抽时间来写写代码,锻炼一下手感,先看一下效果吧. 2 整体来看 ,主要是有两块来实现的,①主界面的RecyclerView ,② ...

  7. android 放大镜

    转自http://chroya.iteye.com/blog/924577 快三个月了没写博客了,因为工作调动,很多经验.心得都没有时间记录下来.现在时间稍微充裕了点,我会尽量抽时间将之前想写而没写的 ...

  8. Android:图片加载库Glide VS Picasso

    两个库拥有许多特性,以下列入部分特性比较 Picasso (CircleTransform.Java) import android.graphics.Bitmap; import com.squar ...

  9. 使用Picasso实现图片圆角和图片圆形

    作者很好的文章访问量缺很少也很难搜到(我这里插个眼以后用的到) 作者:先知丨先觉 来源:CSDN 原文:https://blog.csdn.net/github_33304260/article/de ...

最新文章

  1. 当redis执行flush操作后的补救措施
  2. c调用易语言串口,易语言串口API源码
  3. JZOJ 5956. 【NOIP2018模拟11.7A组】easy LCA
  4. Oracle笔记之表空间
  5. Python 找出一个整数数组中,第二大的数。
  6. java属于编译_《程序员修炼之道》-读书笔记一-Java到底属于编译型语言还是解释型语言?...
  7. html中加粗的字体如何改细,css怎么把字体变细?
  8. 数据段、代码段、堆栈段、BSS段
  9. 开发者应该关注的五项Web新兴技术:WebGL和SVG名列其中
  10. python mysql捕获异常_python mysql无法捕获异常
  11. 敬请注册4月14日边缘计算Meetup(上海站)
  12. 鄙视那些把爬虫当作AI的SB,清华学霸尹成大哥的历史上最强大的爬虫视频
  13. 软件测试报告有哪些内容?
  14. python之matplotlib实现绘图和可视化
  15. python的def语句_关于语法:python def函数:如何指定函数的结尾?
  16. Eclipse插件开发_学习_02_GEF入门实例
  17. 后端如何编写API文档给到前端?
  18. 羽毛球场示意图及羽毛球比赛规则
  19. 微信自定义分享,网页分享微信实现标题,描述和图片的方法(2020)
  20. Android Studio 下载

热门文章

  1. c语言之排序算法(一)
  2. 程序员2009精华本(china-pub首发)--百期后的新起点
  3. 在lammps模拟中常用的模拟设置
  4. 动态再结晶CA法模拟基础之元胞机的邻居类型及边界条件
  5. iframe js 加载失败_JS加载iFrame出现空白问题的解决办法
  6. android 6.0 高通平台sensor 工作机制及流程
  7. qq炫舞手游显示进入服务器失败,QQ炫舞手游4月19日无法进去_QQ炫舞手游更新后进去不了解决方法_游戏吧...
  8. Unity Shader - 故障艺术之 - Glitch Art - ImageBlock + Split RGB (区块强度 + 分离通道颜色的故障效果)
  9. Shell 仿消灭星星游戏(2013-03-15)
  10. yoga11rt系统刷linux,yoga 11 的Windows RT系统如何刷成平板安卓系统?