Shader 之 BitmapShader
2015-11-25 16:22
429 查看
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 镜像 横向不断翻转重复,纵向不断翻转重复
以下例子,将一个矩形的图片,变成一张圆形的图片:
下面把图片换成较小的ic_launcher图标,并且设置为REPEAT
如下:
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(); } @Override protected 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);
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories