Android开发之大位图压缩水印处理
我们在发微博或者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开发之大位图压缩水印处理相关推荐
- Android开发之大位图二次採样压缩处理(源码分享)
图片有各种形状和大小.在很多情况下这些图片是远远大于我们的用户界面(UI)且占领着极大的内存空间,假设我们不正确位图进行压缩处理,我们的程序会发生内存泄露的错误. MainActivity的代码 pa ...
- Android开发之大位图二次采样压缩处理(源代码分享)
图片有各种形状和大小.在许多情况下这些图片是远远大于我们的用户界面(UI)且占据着极大的内存空间,如果我们不对位图进行压缩处理,我们的程序会发生内存泄露的错误. MainActivity的代码 pac ...
- 解决android开发在大屏手机图片出现内存溢出
解决android开发在大屏手机图片出现内存溢出 http://jingyan.baidu.com/article/ed2a5d1f3191d109f6be17e8.html
- android textview点击部分,Android开发第二大控件,EditText的属性和使用方法
EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextView的最大区别在于:EditText可以接受用户输入. 一.Edit ...
- Android开发视频教程大总结—23部视频教程
本文由安卓航班网整理,转载请注明! 1.<腾讯微博Android客户端开发课程> 2.<新浪微博Android客户端项目视频> 3.<Android开发从零开始视频教程& ...
- android rar文件怎么打开方式,android开发如何打开rar压缩文件
释放双眼,带上耳机,听听看~! 有些文件是以压缩包的形式存在的,在打开之前需要对其进行解压,虽然大多数手机系统都有自己的解压功能,但当压缩包大于4GB时,使用自己的解压功能会导致文件损坏,那么andr ...
- Android开发推荐资料大合集 【转载自51CTO】
Android开发资料大集合 Android开发问题集锦1~6集合 http://down.51cto.com/data/440230 Android画图学习 http://down.51cto.co ...
- 安卓开发资料大集合,很多都是51CTO中的推荐材料,值得学习
Android开发资料大集合 Android开发问题集锦1~6集合 http://down.51cto.com/data/440230 Android画图学习 http://down.51cto.co ...
- 安卓开发资料大集合,很多都是51CTO中的推荐材料,值得学习! ...
Android开发资料大集合 Android开发问题集锦1~6集合 http://down.51cto.com/data/440230 Android画图学习 http://down.51cto.co ...
最新文章
- PAT-B 1007.素数对猜想
- 贫血模型,充血模型(领域驱动设计)
- bst java_BST(二叉搜索树) Java 实现解析
- 为利用 QT 制作的项目设置图标
- HarmonyOS之AI能力·助手类意图识别
- 二叉树 --5.1.3 Binary Tree Zigzag Level Order Traversal --图解
- 如何加水印在图片上面?
- linux中文显示为乱码
- 北京工业大学外网访问知网数据库方法
- 微信发送图片php,PHP怎么实现微信图片上传到服务器?
- 被动信息收集:使用OSINT框架进行信息收集
- 爱剪辑 v3.0.0 视频剪辑工具 去除推广弹窗
- Android下载图片并添加图片水印
- 关于常用的Lambda(拉姆达)表达式
- vue2+node实现全栈多人视频会议
- 如何设计真正基于通证经济落地的商业生态模式设计?
- Current的基本用法与了解。
- Linux系统分析与编程-复习总结
- ScheduledThreadPoolExecutor源码分析
- Java降雨量查询项目_WC项目 (JAVA实现)
热门文章
- vs中如何开发mysql_VS2015如何连接mySQL数据库图文
- taro 重新加载小程序_taro-music一款开源网易云音乐小程序
- 小米运动蓝牙耳机重新配对_为运动而生,韶音AS660骨传导蓝牙耳机体验
- office2007/2010/2013/2016安装出现错误:无法安装64位版本的office,因为在您的PC上......
- python batch normalization_Batch Normalization 引出的一系列问题
- 如何查询土地规划用途_一秒辨别“三无产品”,护肤品的猫腻如何发现?
- 7、计算机图形学——图形管线渲染与纹理映射
- pycharm设置回退功能
- 组合框CComboBox响应函数
- oracle11g dataguard windows,Oracle11g 搭建DataGuard(笔记)