Android截图以及加水印Demo
16lz
2021-01-24
实现一个简单的截图功能以及给图片添加水印的功能,直接上代码!
一、代码实现
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、效果演示
更多相关文章
- Android中3种方法实现back键动作
- Android(安卓)图片平铺效果
- Android(安卓)项目无法生成R文件解决办法
- 基于 eclipse 的 android 工程如何使用 jar 文件
- Android(安卓)Gallery3D效果 教程 案例 代码
- Android(安卓)textview实现删除线
- Android个人开发笔记
- android去除标题栏及状态栏
- as引入第三方包版本不一致 Android(安卓)dependency has differe