Shader 之 BitmapShader
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相关推荐
- android 使用BitmapShader实现圆形以及放大镜效果
在一些显示用户头像的时候,大多数都是显示圆形的,而不是显示一个正方形或者长方形,这样显得很呆板,视觉效果也不好看,今天就用二种方式实现图片圆形显示的效果,在先讲这个效果实现之前,讲下BitmapSha ...
- Android绘图Canvas十八般武器之Shader详解及实战篇(上)
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前言 Android中绘图离不开的就是Canvas了,Canvas是一个庞大的知识体系,有java层的,也有jni层深入到Frame ...
- Android之Shader完全理解指南
Shader,中文翻译着色器,老实说,我的专业不是图像处理之类的,所以我也不清楚着色器到底是干嘛的,如果非要我在字面上加以理解,通俗就是给某个机器拿着一只画笔在白纸上画东西,而这个机器就叫着色器,我也 ...
- Android Bitmap圆角
代码如下: public Bitmap transform(Bitmap source) {int size = Math.min(source.getWidth(), source.getHeigh ...
- 7:MD5、圆形图片、动态换肤
1.获取一个文件的MD5值(可处理大文件) public static String getSkinMD5(File file) {FileInputStream fis = null;BigInte ...
- Android 优秀UI控件 ---- FlowingDrawer
1,前天在git上看到了一个不错的控件 ,最近两天项目也没有那么赶了,就抽时间来写写代码,锻炼一下手感,先看一下效果吧. 2 整体来看 ,主要是有两块来实现的,①主界面的RecyclerView ,② ...
- android 放大镜
转自http://chroya.iteye.com/blog/924577 快三个月了没写博客了,因为工作调动,很多经验.心得都没有时间记录下来.现在时间稍微充裕了点,我会尽量抽时间将之前想写而没写的 ...
- Android:图片加载库Glide VS Picasso
两个库拥有许多特性,以下列入部分特性比较 Picasso (CircleTransform.Java) import android.graphics.Bitmap; import com.squar ...
- 使用Picasso实现图片圆角和图片圆形
作者很好的文章访问量缺很少也很难搜到(我这里插个眼以后用的到) 作者:先知丨先觉 来源:CSDN 原文:https://blog.csdn.net/github_33304260/article/de ...
最新文章
- 当redis执行flush操作后的补救措施
- c调用易语言串口,易语言串口API源码
- JZOJ 5956. 【NOIP2018模拟11.7A组】easy LCA
- Oracle笔记之表空间
- Python 找出一个整数数组中,第二大的数。
- java属于编译_《程序员修炼之道》-读书笔记一-Java到底属于编译型语言还是解释型语言?...
- html中加粗的字体如何改细,css怎么把字体变细?
- 数据段、代码段、堆栈段、BSS段
- 开发者应该关注的五项Web新兴技术:WebGL和SVG名列其中
- python mysql捕获异常_python mysql无法捕获异常
- 敬请注册4月14日边缘计算Meetup(上海站)
- 鄙视那些把爬虫当作AI的SB,清华学霸尹成大哥的历史上最强大的爬虫视频
- 软件测试报告有哪些内容?
- python之matplotlib实现绘图和可视化
- python的def语句_关于语法:python def函数:如何指定函数的结尾?
- Eclipse插件开发_学习_02_GEF入门实例
- 后端如何编写API文档给到前端?
- 羽毛球场示意图及羽毛球比赛规则
- 微信自定义分享,网页分享微信实现标题,描述和图片的方法(2020)
- Android Studio 下载
热门文章
- c语言之排序算法(一)
- 程序员2009精华本(china-pub首发)--百期后的新起点
- 在lammps模拟中常用的模拟设置
- 动态再结晶CA法模拟基础之元胞机的邻居类型及边界条件
- iframe js 加载失败_JS加载iFrame出现空白问题的解决办法
- android 6.0 高通平台sensor 工作机制及流程
- qq炫舞手游显示进入服务器失败,QQ炫舞手游4月19日无法进去_QQ炫舞手游更新后进去不了解决方法_游戏吧...
- Unity Shader - 故障艺术之 - Glitch Art - ImageBlock + Split RGB (区块强度 + 分离通道颜色的故障效果)
- Shell 仿消灭星星游戏(2013-03-15)
- yoga11rt系统刷linux,yoga 11 的Windows RT系统如何刷成平板安卓系统?