iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android使用ItemDecoration给RecyclerView 添加水印
  • 155
分享到

android使用ItemDecoration给RecyclerView 添加水印

recyclerviewAndroid 2022-06-06 04:06:14 155人浏览 独家记忆
摘要

前言 项目中有使用到水印效果,如下图所示。在实现过程中,最终选用ItemDecoration来实现,其中有两大步骤:自定义Drawable来完成水印图片、使用ItemDecor

前言

项目中有使用到水印效果,如下图所示。在实现过程中,最终选用ItemDecoration来实现,其中有两大步骤:自定义Drawable来完成水印图片、使用ItemDecoration来布局水印。

Demo在 WatermarkFragment 中,效果图如下:

1. 自定义Drawable完成水印图片


public class MyDrawable extends Drawable {
 Paint mPaint;
 public MyDrawable() {
  mPaint = new Paint();
  mPaint.setColor(Color.parseColor("#1A000000"));
  mPaint.setAntiAlias(true);
  mPaint.setTextAlign(Paint.Align.LEFT);//从字的最左边开始画
  mPaint.setTextSize(54);
 }
 @Override public void draw(@NonNull canvas canvas) {
  Rect r = getBounds();
  //画斜着的字
  canvas.save();
  canvas.rotate(-30, r.left, r.bottom);
  canvas.drawText("哈哈哈哈哈哈哈", r.left, r.bottom, mPaint);
  canvas.restore();
 }
  
 //倾斜30度,可以算出高来
 @Override public int getIntrinsicHeight() {
  return (int) (Math.sqrt(3) / 3 * getIntrinsicWidth() + 0.5F);
 }
 @Override public int getIntrinsicWidth() {
  return (int) (mPaint.measureText("DecorationDraw") + 0.5F);
 }
 //...模板方法省略
}

这里说一下,自定义该Drawable是比较简单的,但是想到这一步的话就简答多了,刚开始是想直接在ItemDecoration里边绘制边布局,但后来尝试了一下太复杂,所以就使用Drawable独立出来,然后就顺利了好多。

2. 使用ItemDecoration布局水印


public class MyDecoration extends RecyclerView.ItemDecoration {
 private Drawable mDivider;
 private int mScrollY;
 public MyDecoration() {
  mDivider = new MyDrawable();
 }
 @Override public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
  //清除之前画的
  // canvas.drawColor(Color.WHITE);
  
  int top = UIUtil.dp(20) - mScrollY;
  // 对于画多少个水印,根据业务需求来,这里直接画count个
  int itemCount = parent.getAdapter().getItemCount();
  // 进行布局
  for (int i = 0; i < itemCount; ++i) {
   int left = i % 2 == 0 ? UIUtil.dp(20) : parent.getMeasuredWidth() -mDivider.getIntrinsicWidth() - UIUtil.dp(20);
   //通过setBounds来控制水印的左右
   mDivider.setBounds(left, top, parent.getMeasuredWidth(), top + mDivider.getIntrinsicHeight());
   mDivider.draw(canvas);
   if (i % 2 == 0) {
    top += UIUtil.dp(20) + mDivider.getIntrinsicHeight();
   } else {
    top += UIUtil.dp(140) + mDivider.getIntrinsicHeight();
   }
  }
 }
  
 public void setScrollY(int scrollY) {
  this.mScrollY = scrollY;
 }
}

在RecyclerView中:


private int totallyY = 0;
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
 @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
  totallyY += dy;
  myDecoration.setScrollY(totallyY);
  }
});

结语

这么写下来感觉还是很简单的,刚开始实现时感觉确实有点难度,RecyclerView写的真的好,艺术般的控件。

您可能感兴趣的文章:Android图片添加水印图片并把图片保存到文件存储的实现代码Android给任何view添加全屏倾斜水印Android 给图片加上水印的示例代码(支持loGo+文字)Android 图片添加水印的实现方法Android给图片加文字和图片水印实例代码Android实现分享长图并且添加全图水印Android实现为图片添加水印Android添加水印的正确方法 只要三步!Android视频处理之动态时间水印效果android实现文字水印效果 支持多行水印


--结束END--

本文标题: android使用ItemDecoration给RecyclerView 添加水印

本文链接: https://www.lsjlt.com/news/22338.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android给图片添加水印
    目录1. 前言2. 方法1 使用SurfaceView3. 方法2 给拍照下来的图片添加水印第一步:获取拍照权限第二步:拍照调用相机进行拍照接收拍照结果注意:第三步:给拍照后得到的图...
    99+
    2024-04-02
  • Android给图片添加水印的方法
    这篇文章主要介绍Android给图片添加水印的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 前言PS:最近在项目执行过程中有这样一个需求,要求拍完照的图片必须达到以上的效果。需求分析:使用用预览布局Surf...
    99+
    2023-06-15
  • Android中怎么给图片添加水印
    本篇文章为大家展示了Android中怎么给图片添加水印,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android 图片添加水印的实现方法手机端打水印(文字和图片)使用的是Bitmap、Matrix...
    99+
    2023-05-30
    android
  • 给PDF添加水印(Python+C#)
    1、Python + PDFlib   以下是用PDFlib给pdf添加水印的速记,另外PDFStamp是个很好用的pdf水印工具。PDFlib功能比较多、杂;PDFStamp功能单一,更方便使用。据walker测试,PDFlib会比PDF...
    99+
    2023-01-31
    水印 PDF Python
  • Android应用中给图片加水印
    今天就跟大家聊聊有关Android应用中给图片加水印,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体方法如下:public class ImageUtil { public ...
    99+
    2023-05-31
    android roi
  • Python使用Pillow添加水印
    本文实例为大家分享了Python使用Pillow添加水印的具体代码,供大家参考,具体内容如下 python数据分析得到的图片,并对照片添加水印pillowPIL包含在pillow中,...
    99+
    2024-04-02
  • 利用JAVA怎么给图片添加水印
    这期内容当中小编将会给大家带来有关利用JAVA怎么给图片添加水印,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。印的类型:单文字水印单图片水印多文字水印多图片水印水印的开发流程:创建图片缓存对象创建Java...
    99+
    2023-05-31
    java ava
  • 使用Python中PIL库给图片添加文本水印
    目录前言一、PIL是什么?二、安装PIL三、查看PIL版本四、使用PIL库给图片添加文本水印1.引入库2.打开图片文件3.新建一个Draw对象4.设置水印文字、字体、大小5.设置水印...
    99+
    2023-05-16
    python给图片添加水印文字 python pil库 python 添加水印
  • Java给PDF文档添加水印信息
            在word生成pdf后,或者上传pdf文件,用户希望给pdf文档添加水印信息,具体代码如下   一. 首先pom中需要引入 com.itextpdf itextpdf 5.5.13 ...
    99+
    2023-09-10
    java pdf 数学建模
  • Android中如何给任何view添加全屏倾斜水印
    小编给大家分享一下Android中如何给任何view添加全屏倾斜水印,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如果要实现如下效果目前有两种思路:先画出带有水平...
    99+
    2023-05-30
    android
  • Android中怎么用FFmpeg给视频加水印
    本文小编为大家详细介绍“Android中怎么用FFmpeg给视频加水印”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android中怎么用FFmpeg给视频加水印”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。F...
    99+
    2023-06-30
  • 如何使用canvas实现给图片添加平铺水印
    小编给大家分享一下如何使用canvas实现给图片添加平铺水印,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近项目中遇到一个需求,需要把一张图片加上平铺的水印类似...
    99+
    2023-06-09
  • Java用自带的Image IO给图片添加水印
    目录1.  文字水印2.  旋转文字3.  旋转坐标轴另外的写法1.  文字水印 import sun.font.FontDesignMe...
    99+
    2024-04-02
  • 如何用nodejs给图片添加半透明水印
    本文小编为大家详细介绍“如何用nodejs给图片添加半透明水印”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何用nodejs给图片添加半透明水印”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • 怎么在html5中使用canvas给图片添加平铺水印
    这篇文章将为大家详细讲解有关怎么在html5中使用canvas给图片添加平铺水印,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。var img = new&nbs...
    99+
    2023-06-09
  • 如何使用python给图片加水印
    这篇文章主要介绍如何使用python给图片加水印,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方式一:叠加文字水印最简单的一种方式是,在图片上绘制半透明文本来实现水印效果。主要用到Figure.text函数参数类型说...
    99+
    2023-06-15
  • Java实现给Word文件添加文字水印
    目录方法思路Jar引入Java代码Word中设置水印时,可预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不...
    99+
    2024-04-02
  • Android实现拍照添加时间水印
    本文实例为大家分享了Android实现拍照添加时间水印的具体代码,供大家参考,具体内容如下 效果如下图 : 1、拍照 // 非空判断 拍照  if (mCamera0 != nul...
    99+
    2024-04-02
  • PHP怎么实现给图片添加文字水印
    本篇内容主要讲解“PHP怎么实现给图片添加文字水印”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么实现给图片添加文字水印”吧!PHP给图片添加文字水印实例,支持中文文字水印,是否覆盖原图...
    99+
    2023-06-04
  • Android NDK开发之FFmpeg视频添加水印
    目录前言1.FFmpeg添加水印命令1.1.水印命令1.2.命令补充说明2.Android 核心代码2.1.jni Java声明2.2.核心代码ffmpeg.c2.3调用程序3.运行...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作