RubberStamp

介绍:

为图片添加水印,水印可以是文字或者其它图片。

运行效果:

使用说明:

依赖

dependencies {
    compile ‘com.vinaygaba:rubberstamp:1.0.0’
}

首先,使用RubberStampConfig进行配置

RubberStampConfig config = new RubberStampConfigBuilder()
              .base(R.drawable.lenna)
              .rubberStamp("Watermark")
              .rubberStampPosition(RubberStamp.CENTER)
              .alpha(100)
              .margin(30, 30)
              .rotation(-45)
              .textColor(Color.BLACK)
              .textBackgroundColor(Color.WHITE)
              .textShadow(0.1f, 5, 5, Color.BLUE)
              .textSize(90)
              .textFont("fonts/champagne.ttf");
              .build();

然后把这个config传递给RubberStamp的addStamp方法

RubberStamp rubberStamp = new RubberStamp(this);
rubberStamp.addStamp(config);

以下所有属性都是RubberStampConfig的一部分。

I. base

使用base方法设置底片,可以是bitmap或者drawable

config.base(bitmap);
config.base(R.id.image);
II. rubberStamp

rubberstamp就是水印本身。可以是bitmap或者string。

// String watermark
config.rubberStamp("Watermark" );

rubberstamp1.png

// Bitmap watermarkBitmap
config.rubberStamp(bitmap);

rubberstamp2.png

如果想使用drawable,先把它转换成bitmap:

Bitmap bitmap = BitmapFactory.decodeResources(getResources(), R.drawable.logo);
III. rubberStampPosition

本库提供了9种水印位置:

TOP_LEFT
TOP_CENTER
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_CENTER
BOTTOM_RIGHT
CENTER_LEFT
CENTER
CENTER_RIGHT

// RubberStampPosition position
config.rubberStampPosition(RubberStampPosition.BOTTOM_RIGHT);

rubberStampPosition.png

如果你想为水印指定一个绝对的位置,可以用CUSTOM的RubberStampPosition,并使用下面的构造方法。

// RubberStampPosition position, int xCoordinate, int yCoordinate
config.rubberStampPosition(RubberStampPosition.CUSTOM, 100, 100);

还有一个特殊的position:TILE。可以让水印贴满底片:

// RubberStampPosition position
config.rubberStampPosition(RubberStampPosition.TILE);

tiling.png

IV. alpha

使用alpha改变水印的透明度,值在 0到 255之间。

//int alpha
config.alpha(255);

textAlpha.png

V. rotation

Rotation可以旋转水印,接受float类型的值。

config.rotation(45);
config.rotation(-45);

rotation.png

VI. margin

设置了RubberStampPosition之后,可以用Margin来调整 x & y偏移量。

// int xMargin, int yMargin
config.margin(-30, 30);
VII. textColor
config.textColor(Color.parseColor("#FFB6C1"));

textColor.png

VIII. textBackgroundColor

**注:**当 position 为 RubberStampPosition.TILE的时候这个属性不起作用。

//int color
config.textBackgroundColor(Color.WHITE);

textBackground.png

IX. textSize
//int size
config.textSize(40);

textSize.png

X. textShader

This lets you specify a custom shader that you can use to customize the watermark. Honestly, the sky is the limit when it comes to Shaders. Here is an example shader that paints my watermark in rainbow colors.

RubberStamp rubberStamp = new RubberStamp(this);
int\[\] rainbow = {Color.RED, Color.YELLOW, Color.GREEN, Color.BLUE, Color.MAGENTA};
Shader shader = new LinearGradient(0, 0, 0, logo.getWidth(), rainbow,
        null, Shader.TileMode.MIRROR);
Matrix matrix = new Matrix();
matrix.setRotate(90);
shader.setLocalMatrix(matrix);
//set the shader
config.textShader(shader);

textShader.png

XI. textShadow

This lets you specify a shadow for your text rubberstamp. Note: No shadow will be displayed if the blur radius is set to 0. This is how the paint API in Android behaves underneath as well.

//float blurRadius, float xOffset, float yOffset, int color
config.textShadow(1.0f, 5, 5, Color.BLUE);

textShadow.png

XII. textFont

Use this to specify a custom font for your text rubberstamp.

//String fontpath
config.textFont("fonts/champagne.ttf");

textFont.png

已下载
0