前言

1. 概述

首先先来实现一个简单的需求,给网络图片添加水印。分别用一般的Java代码 和 RxJava写法来实现,下边先用一般 Java代码实现。

2. 流程图如下:

网络图片添加水印一般写法与RxJava写法.png

3. 效果如下

图片.png

4. 代码如下:

/**

* Email: 2185134304@qq.com

* Created by Novate 2018/6/23 11:29

* Version 1.0

* Params:

* Description: 网络图片加载水印一般写法

*/

public class MainActivity extends AppCompatActivity {

private ImageView iv;

private Handler handler = new Handler(){

@Override

public void handleMessage(Message msg) {

Bitmap bitmap = (Bitmap)msg.obj;

iv.setImageBitmap(bitmap);

}

} ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

iv = (ImageView) findViewById(R.id.iv);

// 网络图片加水印一般写法

new Thread(new Runnable() {

@Override

public void run() {

try {

// 创建url地址

URL url = new URL("http://img.taopic.com/uploads/allimg/130331/240460-13033106243430.jpg") ;

// 建立连接

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

// 获取输入流

InputStream inputStream = urlConnection.getInputStream();

// 把流转为bitmap

Bitmap bitmap = BitmapFactory.decodeStream(inputStream);

// 加一个水印

bitmap = createWatermark(bitmap , "RxJava2.0") ;

// 显示到ImageView上边

Message msg = Message.obtain() ;

msg.obj = bitmap ;

handler.sendMessage(msg) ;

} catch (Exception e) {

e.printStackTrace();

}

}

}).start();

}

private Bitmap createWatermark(Bitmap bitmap, String mark) {

int w = bitmap.getWidth();

int h = bitmap.getHeight();

Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bmp);

Paint p = new Paint();

// 水印颜色

p.setColor(Color.parseColor("#C5FF0000"));

// 水印字体大小

p.setTextSize(150);

//抗锯齿

p.setAntiAlias(true);

//绘制图像

canvas.drawBitmap(bitmap, 0, 0, p);

//绘制文字

canvas.drawText(mark, 0, h / 2, p);

canvas.save(Canvas.ALL_SAVE_FLAG);

canvas.restore();

return bmp;

}

}

java一系列图片加载_RxJava系列文章(一) - 网络图片加载水印一般写法相关推荐

  1. pygame显示图片的方法_pygame系列教程——1.2加载及显示图片

    前言 在上一节中,我们了解了pygame的安装及并编写了一个pygame运行的最小系统.但是,我们的游戏除了窗口就什么都没有了,未免显得过于单调了,那么本节我们就来给我们的游戏添加一些图片吧. 在讲添 ...

  2. java游戏代码_Java与Kotlin系列文章之性能问题详解

    作者丨Jakub Anioła 译者丨姜雨生 策划丨田晓旭 随着对 Kotlin 越来越深入的了解,我发现市面上关于 Kotlin 方面,比较深入的资料几乎是 0,所以我决定,将 Kotlin 各个方 ...

  3. java显示图片_java显示图片的方法

    java显示图片的方法 applet能显示GIF,JPEG,BMP等其他格式的图片.为了在applet中显示图片,你需要使用java.awt.Graphics类的drawImage()方法.以下是小编 ...

  4. 一加7android版本,一加手机7系列发布基于安卓10的氢OS公测版!

    原标题:一加手机7系列发布基于安卓10的氢OS公测版! 如今,华为.小米.OPPO.vivo.一加.联想等智能手机厂商不仅在硬件配置上激烈较量.在软件系统上,各大智能手机厂商也没有忘记将最新的系统推送 ...

  5. android异步加载图片并缓存到内存和sd卡上,Android批量图片加载经典系列——采用二级缓存、异步加载网络图片...

    http://www.cnblogs.com/jerehedu/p/4560119.html 2015-06-08 09:20 by 杰瑞教育, 232 阅读, 1 评论, 收藏, 编辑一.问题描述 ...

  6. Java 加解密技术系列之 MD5

    序 上一篇文章中,介绍了最基础的编码方式 - - BASE64,也简单的提了一下编码的原理.这篇文章继续加解密的系列,当然也是介绍比较基础的加密方式 - - MD5,MD5 属于单向加密算法,是不可逆 ...

  7. java怎么快速创建构造方法,详解系列文章

    Java基础 1Java语言的三大特性 2.Java语言主要特性 3. JDK和JRE有什么区别 4.Java基本数据类型及其封装类 5.如果main方法被声明为private会怎样? 6.说明- - ...

  8. JAVA实现图片加水印及Base64图片字符串加水印

    JAVA实现图片加水印及Base64图片字符串加水印 可将根据不同需求选择场景一,场景二来实现家水印操作,个人感觉比我上一遍文章<base64字符串加水印 >实在 场景一: 涉及上送过来的 ...

  9. java 类 重新加载_Java动态类加载和重新加载的详细介绍

    本篇文章给大家带来的内容是关于Java动态类加载和重新加载的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Java中可以在运行时加载和重新加载类,虽然并不像我们想像中那么简 ...

最新文章

  1. Laravel/Lumen搭建服务器性能测试
  2. Linux Shell 命令--tr
  3. python趣味编程10例-Python趣味编程与精彩实例
  4. Xcode6中添加pch文件
  5. ie浏览器修复_[图]三大Windows 10获得累积更新 修复IE和无法运行Access 95数据库问题...
  6. Android permission 访问权限一览
  7. matlab在linux下面的相对路径的写法
  8. SQL终极优化(包括很多非索引方面的优化和原理)
  9. 20101008 搬家
  10. 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
  11. 为了防止程序重排序,慎用volatile
  12. 用javascript实现(页面正在加载的效果)
  13. xlua build时 报错处理
  14. 2019118_四个化学数据分析(4)
  15. Linux chapter 2
  16. 创设Excel服务失败
  17. swfobject的使用
  18. [笔记分享] [Camera] msm8x25 camera hal 流程记录
  19. 《RSSHub Radar》可以帮助你快速发现和订阅当前网站RSS的浏览器扩展
  20. 探讨广东技术师范大学Windows下MentoHUST上网认证

热门文章

  1. C语言输入三边求三角形面积
  2. HDMI_CS4344调试说明
  3. 跑步机健身器材标准ENISO20957检测范围有哪些
  4. Jeaf Dean万字长文回顾2020谷歌技术发展(上)
  5. 四川省内江市启动公共视频监控三期建设
  6. 关于spring boot自动注入出现Consider defining a bean of type ‘xxx‘ in your configuration问题解决方案
  7. 【读书笔记】Peano公理(为什么“数学归纳法”是正确的?为什么“数学归纳法”可以那么用?)
  8. Python - 实现渐变色的RGB计算
  9. CMD命令行简单学习总结
  10. add as library是什么?有什么用?如何打开?