干货:给图片加水印效果的自定义控件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

记得点个赞哦!!

这里写图片描述

目录
相关文章
|
小程序 Windows
uniapp运行微信小程序routeDone的错误问题
uniapp运行微信小程序routeDone的错误问题
2794 0
|
11月前
|
移动开发 HTML5
html5+three.js公路开车小游戏源码
html5公路开车小游戏是一款html5基于three.js制作的汽车开车小游戏源代码,在公路上开车网页小游戏源代码。
279 0
html5+three.js公路开车小游戏源码
|
数据采集 搜索推荐 安全
谷歌收录新网站最快多久?
答案是:最快是24小时内。 对于新的网站所有者来说,Google搜索引擎的收录速度常常是一个令人关心的问题。 下面,我们将探讨谷歌收录新网站的可能时间,以及可以采取的策略来加速这一过程。
570 0
谷歌收录新网站最快多久?
|
人工智能 算法 安全
分享实录 | 阿里巴巴代码缺陷检测探索与实践
3月3日,阿里巴巴算法工程师别象在云效DevOps交流群中分享了《阿里巴巴代码缺陷检测探索与实践》。从阿里巴巴代码平台在探索缺陷检测和补丁推荐问题时遇到的挑战入手,介绍了目前业界和学术界较为流行的缺陷检测手段,并针对其局限性,提出PRECFIX方法。
6585 0
分享实录 | 阿里巴巴代码缺陷检测探索与实践
|
机器人 索引 SEO
如何让谷歌收录自己的网站?谷歌多久收录我的网站?
你要相信,你自己的网站在谷歌没有流量,没有排名,不是谷歌出了问题,而是你的认知出了问题。
1321 0
如何让谷歌收录自己的网站?谷歌多久收录我的网站?
|
弹性计算 负载均衡 对象存储
2023阿里云免费服务器领取(申请入口)
2023阿里云免费服务器领取(申请入口)
1438 0
|
前端开发 JavaScript Shell
持续集成与部署(二):持续集成1-巧用 Github Actions
持续集成与部署(二):持续集成1-巧用 Github Actions
持续集成与部署(二):持续集成1-巧用 Github Actions
|
Dart 索引
[Flutter]足够入门的Dart语言系列之变量的类型:bool、String、num、List、Set和Map
变量的类型指的是变量的特性或特征,比如表示数字类型、文本类型、集合类型等,表示的是一类数据。 Dart提供以下类型:int, double、String、List、Set、Map、null...
929 0
[Flutter]足够入门的Dart语言系列之变量的类型:bool、String、num、List、Set和Map
|
边缘计算 开发工具 UED
互联网新半场的流量生态——阿里云定向免流方案
当你正在游戏中肆意厮杀时,在你跟美女主播互动畅聊时,突然收到这样一条短信,你会不会心头一紧呢?80%的调查反馈显示,是的(个别土豪除外)。毕竟5块钱30M流量就能用一个月的时代已经过去了,我们玩的游戏也从XX玛丽、贪吃X等单机弱联网游戏过渡到了吃量狂魔的MMO、MOBA等大型网游之中。
8877 0
|
API 语音技术 Python
Python 技术篇-用base64库对音频、图片等文件进行base64编码和解码实例演示
Python 技术篇-用base64库对音频、图片等文件进行base64编码和解码实例演示
1203 0
Python 技术篇-用base64库对音频、图片等文件进行base64编码和解码实例演示