实现一个简单的截图功能以及给图片添加水印的功能,直接上代码!

一、代码实现

import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Typeface;import android.graphics.Bitmap.Config;import android.os.Bundle;import android.text.format.Time;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class GetAppThumbnailActivity extends Activity {private Button btnThum;private ImageView imgThum;private ImageView imgSource;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);setupViews();}private void setupViews() {btnThum = (Button) findViewById(R.id.getThum);imgThum = (ImageView) findViewById(R.id.setThum);imgSource = (ImageView) findViewById(R.id.source);btnThum.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Bitmap bitmap = getViewBitmap(imgSource);Bitmap bitmap1 = createBitmap(bitmap, "haha哈哈");if (bitmap1 != null) {imgThum.setImageBitmap(bitmap1);}}});}/** * Draw the view into a bitmap. */private Bitmap getViewBitmap(View v) {v.clearFocus();v.setPressed(false);boolean willNotCache = v.willNotCacheDrawing();v.setWillNotCacheDrawing(false);// Reset the drawing cache background color to fully transparent// for the duration of this operationint color = v.getDrawingCacheBackgroundColor();v.setDrawingCacheBackgroundColor(0);if (color != 0) {v.destroyDrawingCache();}v.buildDrawingCache();Bitmap cacheBitmap = v.getDrawingCache();if (cacheBitmap == null) {return null;}Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);// Restore the viewv.destroyDrawingCache();v.setWillNotCacheDrawing(willNotCache);v.setDrawingCacheBackgroundColor(color);return bitmap;}// 给图片添加水印private Bitmap createBitmap(Bitmap src, String str) {Time t = new Time();t.setToNow(); int w = src.getWidth();int h = src.getHeight();String mstrTitle = "截图时间:"+t.hour + ":" + t.minute + ":" + t.second;Bitmap bmpTemp = Bitmap.createBitmap(w, h, Config.ARGB_8888);Canvas canvas = new Canvas(bmpTemp);Paint p = new Paint();String familyName = "宋体";Typeface font = Typeface.create(familyName, Typeface.BOLD);p.setColor(Color.BLUE);p.setTypeface(font);p.setTextSize(22);canvas.drawBitmap(src, 0, 0, p);canvas.drawText(mstrTitle, 0, 20, p);canvas.save(Canvas.ALL_SAVE_FLAG);canvas.restore();return bmpTemp;}}

2、资源描述文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><Button android:id="@+id/getThum"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/str_getthum"/><ImageView android:id="@+id/setThum"android:background="@drawable/no_image"android:layout_width="wrap_content"android:layout_height="wrap_content"/><ImageView android:id="@+id/source"android:background="@drawable/v"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

3、源码下载地址:http://download.csdn.net/detail/tangcheng_ok/3670937

4、效果演示



更多相关文章

  1. Android中3种方法实现back键动作
  2. Android(安卓)图片平铺效果
  3. Android(安卓)项目无法生成R文件解决办法
  4. 基于 eclipse 的 android 工程如何使用 jar 文件
  5. Android(安卓)Gallery3D效果 教程 案例 代码
  6. Android(安卓)textview实现删除线
  7. Android个人开发笔记
  8. android去除标题栏及状态栏
  9. as引入第三方包版本不一致 Android(安卓)dependency has differe

随机推荐

  1. 详细介绍C# 中 ASP.NET Web API 的 ROC
  2. CSS选择器有哪些?CSS选择器优先级判定
  3. 必学!C++实现多态机制满足的基本条件条件
  4. 最新总结C语言中关于指针等相关理解和使
  5. 疑惑解答: CSS中背景图片的background-pos
  6. 一招搞定C++调用Lua代码配置文件函数(附代
  7. 常见的C++中const常量用法分析讲解
  8. 精选的这19道C/C+面试题,你能答对多少呢? -
  9. 技术解答面向对象的初步认识(C++ 类)
  10. C#调用的三维地球控件,看三维地球构建过程