我们在发微博或者csdn博文的时候都可以给图片加上一个水印,一个独立的标识,那是怎么实现的呢?先封装一个BitmapTools封装类,该类要解决的问题是一将突破存储至sdcard中,二给图片加上水印。

BitmapTools

package com.example.g11_bitmap04;import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Environment;public class BitmapTools {public BitmapTools() {// TODO Auto-generated constructor stub}public static Bitmap createBitmap(Resources resources, int resid,String name) {Bitmap bitmap=BitmapFactory.decodeResource(resources, resid);//复制一份新的Bitmap,因为不能直接在原有的bitmap上进行水印操作//Bitmap.config存储的格式Bitmap newBitmap=bitmap.copy(Bitmap.Config.ARGB_8888, true);//使用自定义画布Canvas canvas=new Canvas(newBitmap);Paint paint=new Paint();paint.setTextSize(200);canvas.drawText("hello", 100, 100, paint);//判断SDcard是否在可用状态if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//直接将图片保存在根目录下File root=Environment.getExternalStorageDirectory();OutputStream outputStream=null;try {outputStream=new FileOutputStream(new File(root, name));//对图片进行压缩并以png格式,保存在sdcard中newBitmap.compress(Bitmap.CompressFormat.PNG, 50, outputStream);} catch (Exception e) {// TODO: handle exception}}return newBitmap;}
}

MainActivtiy中调用该方法

package com.example.g11_bitmap04;import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;public class MainActivity extends Activity {private ImageView imageView;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView=(ImageView)this.findViewById(R.id.imageView1);button=(Button)this.findViewById(R.id.button1);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubBitmap bitmap=BitmapTools.createBitmap(getResources(), R.drawable.a, "a.png");imageView.setImageBitmap(bitmap);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

Android开发之大位图压缩水印处理相关推荐

  1. Android开发之大位图二次採样压缩处理(源码分享)

    图片有各种形状和大小.在很多情况下这些图片是远远大于我们的用户界面(UI)且占领着极大的内存空间,假设我们不正确位图进行压缩处理,我们的程序会发生内存泄露的错误. MainActivity的代码 pa ...

  2. Android开发之大位图二次采样压缩处理(源代码分享)

    图片有各种形状和大小.在许多情况下这些图片是远远大于我们的用户界面(UI)且占据着极大的内存空间,如果我们不对位图进行压缩处理,我们的程序会发生内存泄露的错误. MainActivity的代码 pac ...

  3. 解决android开发在大屏手机图片出现内存溢出

    解决android开发在大屏手机图片出现内存溢出 http://jingyan.baidu.com/article/ed2a5d1f3191d109f6be17e8.html

  4. android textview点击部分,Android开发第二大控件,EditText的属性和使用方法

    EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextView的最大区别在于:EditText可以接受用户输入. 一.Edit ...

  5. Android开发视频教程大总结—23部视频教程

    本文由安卓航班网整理,转载请注明! 1.<腾讯微博Android客户端开发课程> 2.<新浪微博Android客户端项目视频> 3.<Android开发从零开始视频教程& ...

  6. android rar文件怎么打开方式,android开发如何打开rar压缩文件

    释放双眼,带上耳机,听听看~! 有些文件是以压缩包的形式存在的,在打开之前需要对其进行解压,虽然大多数手机系统都有自己的解压功能,但当压缩包大于4GB时,使用自己的解压功能会导致文件损坏,那么andr ...

  7. Android开发推荐资料大合集 【转载自51CTO】

    Android开发资料大集合 Android开发问题集锦1~6集合 http://down.51cto.com/data/440230 Android画图学习 http://down.51cto.co ...

  8. 安卓开发资料大集合,很多都是51CTO中的推荐材料,值得学习

    Android开发资料大集合 Android开发问题集锦1~6集合 http://down.51cto.com/data/440230 Android画图学习 http://down.51cto.co ...

  9. 安卓开发资料大集合,很多都是51CTO中的推荐材料,值得学习! ...

    Android开发资料大集合 Android开发问题集锦1~6集合 http://down.51cto.com/data/440230 Android画图学习 http://down.51cto.co ...

最新文章

  1. PAT-B 1007.素数对猜想
  2. 贫血模型,充血模型(领域驱动设计)
  3. bst java_BST(二叉搜索树) Java 实现解析
  4. 为利用 QT 制作的项目设置图标
  5. HarmonyOS之AI能力·助手类意图识别
  6. 二叉树 --5.1.3 Binary Tree Zigzag Level Order Traversal --图解
  7. 如何加水印在图片上面?
  8. linux中文显示为乱码
  9. 北京工业大学外网访问知网数据库方法
  10. 微信发送图片php,PHP怎么实现微信图片上传到服务器?
  11. 被动信息收集:使用OSINT框架进行信息收集
  12. 爱剪辑 v3.0.0 视频剪辑工具 去除推广弹窗
  13. Android下载图片并添加图片水印
  14. 关于常用的Lambda(拉姆达)表达式
  15. vue2+node实现全栈多人视频会议
  16. 如何设计真正基于通证经济落地的商业生态模式设计?
  17. Current的基本用法与了解。
  18. Linux系统分析与编程-复习总结
  19. ScheduledThreadPoolExecutor源码分析
  20. Java降雨量查询项目_WC项目 (JAVA实现)

热门文章

  1. vs中如何开发mysql_VS2015如何连接mySQL数据库图文
  2. taro 重新加载小程序_taro-music一款开源网易云音乐小程序
  3. 小米运动蓝牙耳机重新配对_为运动而生,韶音AS660骨传导蓝牙耳机体验
  4. office2007/2010/2013/2016安装出现错误:无法安装64位版本的office,因为在您的PC上......
  5. python batch normalization_Batch Normalization 引出的一系列问题
  6. 如何查询土地规划用途_一秒辨别“三无产品”,护肤品的猫腻如何发现?
  7. 7、计算机图形学——图形管线渲染与纹理映射
  8. pycharm设置回退功能
  9. 组合框CComboBox响应函数
  10. oracle11g dataguard windows,Oracle11g 搭建DataGuard(笔记)