ComposeShader组合渲染

来源:互联网 发布:赈灾晚会的数据统计 编辑:程序博客网 时间:2024/04/30 11:03

public ComposeShader(Shader shaderA,Shader shaderB, Xfermode mode)

Parameters
shaderA渲染器A,Shader及其子类对象shaderB渲染器B,Shader及其子类对象mode 两种渲染器组合的模式,Xfermode对象

public ComposeShader(Shader shaderA,Shader shaderB, PorterDuff.Mode mode)

Parameters

shaderA渲染器A,Shader及其子类对象shaderB渲染器B,Shader及其子类对象mode.两种渲染器组合的模式,ProterDuff.Mode对象

主要代码:

public class ComposeShaderActivity extends Activity {    ImageView image,image2,image3,image4;    int width,height;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        image = (ImageView) findViewById(R.id.image);        image2 = (ImageView) findViewById(R.id.image2);        image3 = (ImageView) findViewById(R.id.image3);        image4 = (ImageView) findViewById(R.id.image4);        width = ValueUtil.dp2px(this, 120);        height = ValueUtil.dp2px(this, 120);        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tupian);        Bitmap bitmapTemp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(bitmapTemp);        // 创建BitmapShader对象        BitmapShader mBitmapShader = new BitmapShader(bitmap, Shader.TileMode.MIRROR,                Shader.TileMode.MIRROR);        // 创建LinearGradient并设置渐变颜色数组,平铺效果为镜像        LinearGradient mLinearGradient = new LinearGradient(0, 0, 0, height, new int[] {                Color.WHITE, Color.LTGRAY, Color.TRANSPARENT, Color.GREEN }, null,                Shader.TileMode.MIRROR);        // 混合渲染 将两个效果叠加,使用PorterDuff叠加模式        ComposeShader mComposeShader = new ComposeShader(mBitmapShader, mLinearGradient,  PorterDuff.Mode.MULTIPLY);        Paint paint = new Paint();        paint.setShader(mComposeShader);        canvas.drawRect(new RectF(0, 0, width, height), paint);        image.setImageBitmap(bitmapTemp);    }}

效果图:



参考资料:http://blog.csdn.net/t12x3456/article/details/10366131


源码:http://yunpan.cn/c3f2qgcVtNSwP (提取码:2ccf)


0 0
原创粉丝点击