Android几个bitmap相关的方法
来源:互联网 发布:网络模块接a还是b 编辑:程序博客网 时间:2024/05/18 00:04
package com.forgirl.utils;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.ContentValues;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.Paint.Align;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.provider.MediaStore.Images.Media;
public class BitmapUtils {
//将日期字符串打印到指定的图片上,并保存在系统数据库中返回uripublic static String drawDateOnBitmap(Context context,String date){ Bitmap bg = getBitmap(context, "png/date_bg_128.png"); Bitmap markedBitmap = createWatermark(bg, date); try { Uri uri = context.getContentResolver().insert(Media.EXTERNAL_CONTENT_URI,new ContentValues()); OutputStream os = context.getContentResolver().openOutputStream(uri); markedBitmap.compress(CompressFormat.PNG, 90, os); return uri.toString(); } catch (FileNotFoundException e) { e.printStackTrace(); } return null;}//从assert文件中读取图片,返回bitmappublic static Bitmap getBitmap(Context context,String fileName){ AssetManager assetManager = context.getAssets(); InputStream in = null; Bitmap bitmap = null; try { in = assetManager.open(fileName); bitmap = BitmapFactory.decodeStream(in); if (bitmap==null) { throw new RuntimeException("Could not load bitmap from "+fileName); } } catch (IOException e) { e.printStackTrace(); }finally{ assetManager = null; if (in!=null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return bitmap;}//将日期印在图片上,返回bitmapprivate static Bitmap createWatermark(Bitmap target, String date) { int w = target.getWidth(); int h = target.getHeight(); Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bmp); Paint paint = new Paint(); // text的颜色 paint.setColor(Color.DKGRAY); paint.setTextAlign(Align.CENTER); Typeface typeface = Typeface.create(Typeface.SERIF, Typeface.ITALIC); paint.setTypeface(typeface); // 字体大小 paint.setTextSize(35); paint.setAntiAlias(true);// 去锯齿 canvas.drawBitmap(target, 0, 0, paint); String[] arr = date.split(":"); canvas.drawText(arr[0], w/2, h/2-10, paint); canvas.drawText(arr[1]+"-"+arr[2], w/2, h/2+25, paint); canvas.save(Canvas.ALL_SAVE_FLAG); canvas.restore(); return bmp;}//从指定的uri获取bitmappublic static Bitmap getBitmap(Context context,Uri uri){ try { InputStream in = context.getContentResolver().openInputStream(uri); Bitmap bitmap = BitmapFactory.decodeStream(in); return bitmap; } catch (FileNotFoundException e) { e.printStackTrace(); } return null;}//bitmap转换成drawablepublic static Drawable bitmapToDrawable(Context context,Bitmap bitmap){ return new BitmapDrawable(context.getResources(), bitmap);}
}
- Android几个bitmap相关的方法
- Android关于Bitmap的几个方法
- Bitmap的相关方法汇总
- Android Bitmap相关-图片水印的生成方法
- Android bitmap中Matrix的几个操作
- Android 将Bitmap转换成圆形图片的几个方法总结
- android Bitmap.recycle()的相关问题
- Android 的Bitmap密度density相关问题
- bitmap的几个用法
- android 中的 Bitmap 相关
- android 中的 Bitmap 相关 .
- android 中的 Bitmap 相关
- Android Bitmap 相关
- android Bitmap 相关
- Android Bitmap 位图相关
- Android Bitmap相关
- Android Bitmap相关
- Android Bitmap 相关
- 一个优化过的OC的简单冒泡排序算法
- C语言宏定义
- shell运算符:算数运算符, 关系运算符,布尔运算符,字符串运算符,文件测试运算符
- extjs Form验证、表单验证、表单错误提示位置
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Android几个bitmap相关的方法
- Androin学习笔记五十八:android触控,先了解MotionEvent
- sas入门学习 via.数说工作室
- 便利的UI交互演示工具: Chainco
- SpringMVC整合Tiles框架
- 第一章 编写第一个angular应用程序
- simHash 简介以及 java 实现
- Java 进制转换
- python中改变list中list值的问题