干货:给图片加水印效果的自定义控件LabelImageView

简介:

转载请著名出处:王亟亟的大牛之路

这两天不知道给Soyi加些什么东西,那就慢慢的往CodeActivity里加东西吧,所以就写了这么个简单的自定义控件LabelImageView

HOW to do?

0,获取一大堆参数,没有传就用默认的。
1,设置传来的image_src作为底版,在onDraw方法中 canvas.drawBitmap(bitmap, 0, 0, paint);
2,根据textLocation参数判断位置,默认右下

 switch (textLocation) {
            case RightBottom:
                //右下
                canvas.drawText(contentStr, (int) bitmapWidth - paint.measureText(contentStr), (int) bitmapHeight-fontMetrics.bottom, paint);
                break;
            case RightTop:
                //右上
                canvas.drawText(contentStr, (int) bitmapWidth - paint.measureText(contentStr), 0+textSize, paint);
                break;
            case LeftTop:
                //左上
                canvas.drawText(contentStr, 0, 0+textSize, paint);
                break;
            case LeftBottom:
                //左下
                canvas.drawText(contentStr, 0, (int) bitmapHeight-fontMetrics.bottom, paint);
                break;
        }

3..结束!!

效果图:

这张腿好粗

或是在这里:

这里写图片描述

又在这里:

这里写图片描述

反正就是可以给你的图片打上你的水印,加上你想要加的内容即可(闲着蛋疼的时候不知道写什么,就写了)

包结构:
这里写图片描述

就这么一个类,很简便,所以也就不做Gradle了,但是记得把一些需要的素材文件一起Copy走哦!


怎么用?

在你的主布局里面引入:

 <labelimageview.pro.wjj.labelimageview.LabelImageViewPro.LabelImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                labelImageView:image_src="@drawable/bg"
                labelImageView:text_color="@color/White"
                labelImageView:text_content="Hellow World"
                labelImageView:text_location="RightBottom"
                labelImageView:text_size="50" />

就可以了,如果要用一系列set的方法,那就赋予一个ID各种Set吧,大致需要的几个方法都谢了,如果有别的需求就自己加咯!

说一下一些配置参数:

image_src:图片资源(如果不设置请给实现类里面加一个备用的图片)

text_color:字体颜色

text_content:具体的文字内容

text_location:文字的位置,现有的是:左上,左下,右上,右下,如果需要特殊的位置就设置内部的bitmapWidth, bitmapHeight就行。

    final static String LeftTop = "LeftTop";
    final static String LeftBottom = "LeftBottom";
    final static String RightTop = "RightTop";
    final static String RightBottom = "RightBottom";

text_size:字体的大小,默认是30.

主要说一下image_width和image_height,如果你想要设置的图片有多大就显示多大那么就使用
android:layout_width="wrap_conten"
android:layout_height="wrap_content"

如果你需要附加设置图片大小,请设置

 labelImageView:image_height="100dp"
 labelImageView:image_width="100dp"

像这样的数值,而

android:layout_width="wrap_conten"
android:layout_height="wrap_content"

也不用删除,就这么放着吧,不影响使用,如果你的图片大于屏幕,会默认设置为最大值,所以可以不用在意要不要设置成match_parent。

当然你也可以用Java代码去实现,像这样

LabelImageView image=(LabelImageView )findViewById(R.id.labelImageView );
image.setTextColor(Color.Black);
image.setTextLocation(RightBottom);
image.setContentStr("你好啊");
image.setTextSize(45);

也可以实现,看你个人喜好了。

源码地址:https://github.com/ddwhan0123/GitLabelImageView

记得点个赞哦!!

这里写图片描述

目录
相关文章
|
数据安全/隐私保护 Android开发
Android为图片添加水印,裁剪图片,旋转图片工具类
Android为图片添加水印,裁剪图片,旋转图片工具类
145 0
|
XML 存储 数据安全/隐私保护
Android自定义控件(九)——如何让图片颜色更鲜艳以及给图片添加水印
Android自定义控件(九)——如何让图片颜色更鲜艳以及给图片添加水印
215 0
Android自定义控件(九)——如何让图片颜色更鲜艳以及给图片添加水印
|
开发者
图片控件| 学习笔记
快速学习图片控件。
57 0
|
开发者
图片控件|学习笔记
快速学习图片控件
85 0
图片控件|学习笔记
|
前端开发 数据安全/隐私保护 Android开发
autojs图片加水印
牙叔教程 简单易懂
189 0
|
Java API Maven
一行代码搞定图片缩略图处理
不知道大家现在工作中还有没有使用过Java处理图片的。强哥在大学毕业后,从事服务端WEB开发,就很少接触图片处理。有接触图片的,大多也就是图片的上传下载。所以,对Java处理图片相关的技术也都没怎么接触。
一行代码搞定图片缩略图处理
|
缓存 Java 数据安全/隐私保护
给图片加水印?这是我见过最简单的实现方式
大家好,我是指北君。 在项目中经常有需要在图片上添加水印的需求以及在某些场合下需要身份证图片,这时就可以对身份证上加水印防止被用于其他用途,java 在处理图片水印时不需要额外的第三方包,使用 BufferedImage 和 Graphics2D 就可以搞定
给图片加水印?这是我见过最简单的实现方式
|
C#
【C#/WPF】图片的切割/切图/裁剪图片
原文:【C#/WPF】图片的切割/切图/裁剪图片 前台准备两个Image控件。上面是显示原图,下面显示切割后的效果。 对应的后台代码: public par...
2120 0
|
安全 数据安全/隐私保护
|
C# 图形学 数据安全/隐私保护