当前位置: 首页>>代码示例>>Java>>正文


Java ShaderFactory类代码示例

本文整理汇总了Java中android.graphics.drawable.ShapeDrawable.ShaderFactory的典型用法代码示例。如果您正苦于以下问题:Java ShaderFactory类的具体用法?Java ShaderFactory怎么用?Java ShaderFactory使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ShaderFactory类属于android.graphics.drawable.ShapeDrawable包,在下文中一共展示了ShaderFactory类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createInnerStrokesDrawable

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
private Drawable createInnerStrokesDrawable(final int color, float strokeWidth) {
  if (!mStrokeVisible) {
    return new ColorDrawable(Color.TRANSPARENT);
  }

  ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());

  final int bottomStrokeColor = darkenColor(color);
  final int bottomStrokeColorHalfTransparent = halfTransparent(bottomStrokeColor);
  final int topStrokeColor = lightenColor(color);
  final int topStrokeColorHalfTransparent = halfTransparent(topStrokeColor);

  final Paint paint = shapeDrawable.getPaint();
  paint.setAntiAlias(true);
  paint.setStrokeWidth(strokeWidth);
  paint.setStyle(Style.STROKE);
  shapeDrawable.setShaderFactory(new ShaderFactory() {
    @Override
    public Shader resize(int width, int height) {
      return new LinearGradient(width / 2, 0, width / 2, height,
          new int[] { topStrokeColor, topStrokeColorHalfTransparent, color, bottomStrokeColorHalfTransparent, bottomStrokeColor },
          new float[] { 0f, 0.2f, 0.5f, 0.8f, 1f },
          TileMode.CLAMP
      );
    }
  });

  return shapeDrawable;
}
 
开发者ID:nhocga1995s,项目名称:MyCalendar,代码行数:30,代码来源:FloatingActionButtonLibrary.java

示例2: createInnerStrokesDrawable

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
private Drawable createInnerStrokesDrawable(final int color, float strokeWidth) {
        if (!mStrokeVisible) {
                return new ColorDrawable(Color.TRANSPARENT);
        }

        ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());

        final int bottomStrokeColor = darkenColor(color);
        final int bottomStrokeColorHalfTransparent = halfTransparent(bottomStrokeColor);
        final int topStrokeColor = lightenColor(color);
        final int topStrokeColorHalfTransparent = halfTransparent(topStrokeColor);

        final Paint paint = shapeDrawable.getPaint();
        paint.setAntiAlias(true);
        paint.setStrokeWidth(strokeWidth);
        paint.setStyle(Style.STROKE);
        shapeDrawable.setShaderFactory(new ShaderFactory() {
                @Override
                public Shader resize(int width, int height) {
                        return new LinearGradient(width / 2, 0, width / 2, height,
                                new int[]{topStrokeColor, topStrokeColorHalfTransparent, color, bottomStrokeColorHalfTransparent, bottomStrokeColor},
                                new float[]{0f, 0.2f, 0.5f, 0.8f, 1f},
                                TileMode.CLAMP
                        );
                }
        });

        return shapeDrawable;
}
 
开发者ID:HelloChenJinJun,项目名称:TestChat,代码行数:30,代码来源:FloatingActionButton.java

示例3: generateCircleDrawable

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
private static Drawable generateCircleDrawable(final int color) {
    ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
    drawable.setShaderFactory(new ShaderFactory() {
        public Shader resize(int width, int height) {
            return new LinearGradient(0.0f, 0.0f, 0.0f, 0.0f, color, color, TileMode.REPEAT);
        }
    });
    return drawable;
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:10,代码来源:DayView.java

示例4: createInnerStrokesDrawable

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
/**
 * 创建内层drawable
 *
 * @param color
 * @param strokeWidth
 * @return
 */
private Drawable createInnerStrokesDrawable(final int color, float strokeWidth) {
    //不描边的话直接返回一个颜色为透明的drawable
    if (!mStrokeVisible) {
        return new ColorDrawable(Color.TRANSPARENT);
    }
    //圆 drawable
    ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());

    final int bottomStrokeColor = darkenColor(color);//这个暗颜色
    final int bottomStrokeColorHalfTransparent = halfTransparent(bottomStrokeColor);//比bottomStrokeColor透明一半
    final int topStrokeColor = lightenColor(color);//这个亮颜色
    final int topStrokeColorHalfTransparent = halfTransparent(topStrokeColor);//比topStrokeColor透明一半

    final Paint paint = shapeDrawable.getPaint();
    paint.setAntiAlias(true);//锯齿
    paint.setStrokeWidth(strokeWidth);//描边宽度
    paint.setStyle(Style.STROKE);//描边
    //draws a linear gradient
    shapeDrawable.setShaderFactory(new ShaderFactory() {
        @Override
        public Shader resize(int width, int height) {
            return new LinearGradient(width / 2, 0, width / 2, height,
                    new int[]{topStrokeColor, topStrokeColorHalfTransparent, color, bottomStrokeColorHalfTransparent, bottomStrokeColor},
                    new float[]{0f, 0.2f, 0.5f, 0.8f, 1f},
                    TileMode.CLAMP
            );
        }
    });

    return shapeDrawable;
}
 
开发者ID:fanwucoder,项目名称:mvpChat,代码行数:39,代码来源:FloatingActionButton.java

示例5: createInnerStrokesDrawable

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
private Drawable createInnerStrokesDrawable(final int color, float strokeWidth) {
    if (!mStrokeVisible) {
        return new ColorDrawable(Color.TRANSPARENT);
    }

    ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());

    final int bottomStrokeColor = darkenColor(color);
    final int bottomStrokeColorHalfTransparent = halfTransparent(bottomStrokeColor);
    final int topStrokeColor = lightenColor(color);
    final int topStrokeColorHalfTransparent = halfTransparent(topStrokeColor);

    final Paint paint = shapeDrawable.getPaint();
    paint.setAntiAlias(true);
    paint.setStrokeWidth(strokeWidth);
    paint.setStyle(Style.STROKE);
    shapeDrawable.setShaderFactory(new ShaderFactory() {
        @Override
        public Shader resize(int width, int height) {
            return new LinearGradient(width / 2, 0, width / 2, height,
                    new int[]{topStrokeColor, topStrokeColorHalfTransparent, color, bottomStrokeColorHalfTransparent, bottomStrokeColor},
                    new float[]{0f, 0.2f, 0.5f, 0.8f, 1f},
                    TileMode.CLAMP
            );
        }
    });

    return shapeDrawable;
}
 
开发者ID:teamOSC,项目名称:Studddinv2_android,代码行数:30,代码来源:FloatingActionButton.java

示例6: createInnerStrokesDrawable

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
private Drawable createInnerStrokesDrawable(final int color, float strokeWidth) {
	if (!mStrokeVisible) {
		return new ColorDrawable(Color.TRANSPARENT);
	}

	ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());

	final int bottomStrokeColor = darkenColor(color);
	final int bottomStrokeColorHalfTransparent = halfTransparent(bottomStrokeColor);
	final int topStrokeColor = lightenColor(color);
	final int topStrokeColorHalfTransparent = halfTransparent(topStrokeColor);

	final Paint paint = shapeDrawable.getPaint();
	paint.setAntiAlias(true);
	paint.setStrokeWidth(strokeWidth);
	paint.setStyle(Style.STROKE);
	shapeDrawable.setShaderFactory(new ShaderFactory() {
		@Override
		public Shader resize(int width, int height) {
			return new LinearGradient(width / 2, 0, width / 2, height,
					new int[]{topStrokeColor, topStrokeColorHalfTransparent, color, bottomStrokeColorHalfTransparent, bottomStrokeColor},
					new float[]{0f, 0.2f, 0.5f, 0.8f, 1f},
					TileMode.CLAMP
			);
		}
	});

	return shapeDrawable;
}
 
开发者ID:enginebai,项目名称:Movie-lol-android,代码行数:30,代码来源:FloatingActionButton.java

示例7: createInnerStrokesDrawable

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
private Drawable createInnerStrokesDrawable(
        final int color,
        float strokeWidth)
{
    if (!mStrokeVisible) {
        return new ColorDrawable(Color.TRANSPARENT);
    }

    ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());

    final int bottomStrokeColor = darkenColor(color);
    final int bottomStrokeColorHalfTransparent = halfTransparent(bottomStrokeColor);
    final int topStrokeColor = lightenColor(color);
    final int topStrokeColorHalfTransparent = halfTransparent(topStrokeColor);

    final Paint paint = shapeDrawable.getPaint();
    paint.setAntiAlias(true);
    paint.setStrokeWidth(strokeWidth);
    paint.setStyle(Style.STROKE);
    shapeDrawable.setShaderFactory(
            new ShaderFactory()
            {
                @Override
                public Shader resize(
                        int width,
                        int height)
                {
                    return new LinearGradient(
                            width / 2, 0, width / 2, height, new int[] {
                            topStrokeColor,
                            topStrokeColorHalfTransparent,
                            color,
                            bottomStrokeColorHalfTransparent,
                            bottomStrokeColor}, new float[] {0f, 0.2f, 0.5f, 0.8f, 1f},
                            TileMode.CLAMP);
                }
            });

    return shapeDrawable;
}
 
开发者ID:nextgis,项目名称:android_gisapp,代码行数:41,代码来源:FloatingActionButton.java

示例8: preprocess

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
protected void preprocess()
{
	if(!(topLeftRadius==topRightRadius && bottomLeftRadius==bottomRightRadius && topLeftRadius==bottomLeftRadius))
	{
		shapeDrawable = new ShapeDrawable(new RoundRectShape(new float[]{topLeftRadius,topLeftRadius,topRightRadius,topRightRadius,bottomLeftRadius,bottomLeftRadius,bottomRightRadius,bottomRightRadius},null,null));
		shapeDrawable.setShaderFactory(new ShaderFactory(){public Shader resize(int width, int height){return new LinearGradient(0,0,0,height,primaryColor,secondaryColor,Shader.TileMode.CLAMP);}});
		innerPaint = null;
		borderPaint = null;
	}
	else
	{
		shapeDrawable = null;

		borderPaint = new Paint();
		borderPaint.setAntiAlias(true);
		borderPaint.setStyle(Style.STROKE);
		borderPaint.setStrokeWidth(borderThickness);
		borderPaint.setColor((borderThickness==0)?Color.TRANSPARENT:borderColor);

		innerPaint = new Paint();
		innerPaint.setAntiAlias(true);
		if(!innerGradient)
			innerPaint.setColor(primaryColor);

		if(shadowColor!=0)
		{
			innerPaint.setShadowLayer(shadowRadius,shadowDX,shadowDY,shadowColor);
		}

		if(!circularSides && topLeftRadius > 0)
		{
			leftPadding = (int)(topLeftRadius*0.75);
			topPadding = (int)(topLeftRadius*0.75);
			rightPadding = (int)(topLeftRadius*0.75);
			bottomPadding = (int)(topLeftRadius*0.75);
		}
	}

	leftPadding += leftContraction;
	topPadding += topContraction;
	rightPadding += rightContraction;
	bottomPadding += bottomContraction;
}
 
开发者ID:gregrj,项目名称:grouptuity,代码行数:44,代码来源:StyleTemplate.java

示例9: apply

import android.graphics.drawable.ShapeDrawable.ShaderFactory; //导入依赖的package包/类
private void apply(final ViewTemplate<?,?> vt, boolean forced)
{
	if(oldWidth!=vt.getWidth() || oldHeight!=vt.getHeight() || forced)
	{
		oldWidth = vt.getMeasuredWidth();
		oldHeight = vt.getMeasuredHeight();

		if(circularSides)
		{
			int rectangleRadius = vt.getHeight()/2;
			topLeftRadius = rectangleRadius;
			topRightRadius = rectangleRadius;
			bottomLeftRadius = rectangleRadius;
			bottomRightRadius = rectangleRadius;
			leftPadding = rectangleRadius+leftContraction;
			rightPadding = rectangleRadius+rightContraction;
		}

		if(shapeDrawable!=null)
			shapeDrawable.setBounds(leftContraction, topContraction, vt.getMeasuredWidth()-rightContraction, vt.getMeasuredHeight()-bottomContraction);
	}

	vt.setPadding(leftPadding,topPadding,rightPadding,bottomPadding-bottomPaddingCompensationPixels);

	if(innerGradient)
	{
		if(shapeDrawable==null)
			innerPaint.setShader(new LinearGradient(0,0,0,vt.getMeasuredHeight(),primaryColor,secondaryColor,Shader.TileMode.CLAMP));
		else if(gradientSizingLL!=null)
		{
			shapeDrawable.setShaderFactory(new ShaderFactory()
			{
				public Shader resize(int width, int height)
				{
					int startPos = 0;
					for(int i=0; i<gradientSizingLL.getChildCount(); i++)
					{
						View v = gradientSizingLL.getChildAt(i);
						if(v.equals(vt) || v.equals(vt.getParent()))
							break;
						else
							startPos += v.getMeasuredHeight();
					}

					final double fullSpan = gradientSizingLL.getHeight();
					final int startA = (primaryColor >> 24) & 0xFF;
					final int endA = (secondaryColor >> 24) & 0xFF;
					final int startR = (primaryColor >> 16) & 0xFF;
					final int endR = (secondaryColor >> 16) & 0xFF;
					final int startG = (primaryColor >> 8) & 0xFF;
					final int endG = (secondaryColor >> 8) & 0xFF;
					final int startB = (primaryColor >> 0) & 0xFF;
					final int endB = (secondaryColor >> 0) & 0xFF;
					final int actualA1 = (int)(startA + (endA-startA)*startPos/fullSpan);
					final int actualA2 = (int)(startA + (endA-startA)*(startPos+vt.getHeight())/fullSpan);
					final int actualR1 = (int)(startR + (endR-startR)*startPos/fullSpan);
					final int actualR2 = (int)(startR + (endR-startR)*(startPos+vt.getHeight())/fullSpan);
					final int actualG1 = (int)(startG + (endG-startG)*startPos/fullSpan);
					final int actualG2 = (int)(startG + (endG-startG)*(startPos+vt.getHeight())/fullSpan);
					final int actualB1 = (int)(startB + (endB-startB)*startPos/fullSpan);
					final int actualB2 = (int)(startB + (endB-startB)*(startPos+vt.getHeight())/fullSpan);

					return new LinearGradient(0,0,0,vt.getHeight(),Color.argb(actualA1,actualR1,actualG1,actualB1),Color.argb(actualA2,actualR2,actualG2,actualB2),Shader.TileMode.CLAMP);
				}
			});
		}
	}

	vt.applyStyle();
	vt.requestLayout();
	vt.invalidate();
}
 
开发者ID:gregrj,项目名称:grouptuity,代码行数:73,代码来源:StyleTemplate.java


注:本文中的android.graphics.drawable.ShapeDrawable.ShaderFactory类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。