super(1, _content, _preview, _status, _inOrOut, _contactCategory, _contactNumber, _serverTime, _localtime);\r
\r
}\r
- \r
+ private VoiceContent(String _content, String _preview, int _status, int _inOrOut, int _contactCategory, String _contactNumber, String _serverTime, long _localtime,int _filetype, int _datatype)\r
+ {\r
+ super(1, _content, _preview, _status, _inOrOut, _contactCategory, _contactNumber, _serverTime, _localtime,_filetype,_datatype);\r
+\r
+ }\r
+\r
public static VoiceContent from(VoiceContent _voiceContent, byte[] amrData, File amrFilepath,String servertime) {\r
\r
StringBuilder stringBuilder2 = new StringBuilder();\r
_voiceContent.serverTime = servertime;\r
return _voiceContent;\r
}\r
- \r
+\r
+\r
+ public static VoiceContent from(VoiceContent _voiceContent, byte[] amrData, File amrFilepath,String servertime,int filetype,int datatype) {\r
+\r
+ StringBuilder stringBuilder2 = new StringBuilder();\r
+// stringBuilder2.append(str3);\r
+ stringBuilder2.append(".amr");\r
+ String str1 = Util.saveFile(amrData, 0, amrData.length, amrFilepath, stringBuilder2.toString());\r
+ int duration = Util.getDuration(str1);\r
+ _voiceContent.content = str1;\r
+ _voiceContent.preview = String.valueOf(duration);\r
+ _voiceContent.status = 2;\r
+ _voiceContent.serverTime = servertime;\r
+ _voiceContent.filetype=filetype;\r
+ _voiceContent.datatype=datatype;\r
+ return _voiceContent;\r
+ }\r
public static VoiceContent placeHolderIn(int _contactCategory, String _contactNumber, String _content) {\r
return new VoiceContent(_content, null, 1, 1, _contactCategory, _contactNumber, null, System.currentTimeMillis());\r
}\r
public static VoiceContent placeHolderOut(int _contactCategory, String _contactNumber, String _content) {\r
return new VoiceContent(_content, null, 1, 2, _contactCategory, _contactNumber, null, System.currentTimeMillis());\r
}\r
+\r
+\r
+ public static VoiceContent placeHolderOut(int _contactCategory, String _contactNumber, String _content,int filetype,int datatype) {\r
+ return new VoiceContent(_content, null, 1, 2, _contactCategory, _contactNumber, null, System.currentTimeMillis(),filetype,datatype);\r
+ }\r
}\r
\r
--- /dev/null
+package com.enqualcomm.support.utils;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.Rect;
+
+public class ImageUtil {
+ /**
+ * 设置水印图片在左上角
+ *
+ * @param context 上下文
+ * @param src
+ * @param watermark
+ * @param paddingLeft
+ * @param paddingTop
+ * @return
+ */
+ public static Bitmap createWaterMaskLeftTop(Context context, Bitmap src, Bitmap watermark, int paddingLeft, int paddingTop) {
+ return createWaterMaskBitmap(src, watermark,
+ dp2px(context, paddingLeft), dp2px(context, paddingTop));
+ }
+
+ private static Bitmap createWaterMaskBitmap(Bitmap src, Bitmap watermark, int paddingLeft, int paddingTop) {
+ if (src == null) {
+ return null;
+ }
+ int width = src.getWidth();
+ int height = src.getHeight();
+ //创建一个bitmap
+ Bitmap newb = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图
+ //将该图片作为画布
+ Canvas canvas = new Canvas(newb);
+ //在画布 0,0坐标上开始绘制原始图片
+ canvas.drawBitmap(src, 0, 0, null);
+ //在画布上绘制水印图片
+ canvas.drawBitmap(watermark, paddingLeft, paddingTop, null);
+ // 保存
+ canvas.save(Canvas.ALL_SAVE_FLAG);
+ // 存储
+ canvas.restore();
+ return newb;
+ }
+
+ /**
+ * 设置水印图片在右下角
+ *
+ * @param context 上下文
+ * @param src
+ * @param watermark
+ * @param paddingRight
+ * @param paddingBottom
+ * @return
+ */
+ public static Bitmap createWaterMaskRightBottom(Context context, Bitmap src, Bitmap watermark, int paddingRight, int paddingBottom) {
+ return createWaterMaskBitmap(src, watermark,
+ src.getWidth() - watermark.getWidth() - dp2px(context, paddingRight),
+ src.getHeight() - watermark.getHeight() - dp2px(context, paddingBottom));
+ }
+
+ /**
+ * 设置水印图片到右上角
+ *
+ * @param context
+ * @param src
+ * @param watermark
+ * @param paddingRight
+ * @param paddingTop
+ * @return
+ */
+ public static Bitmap createWaterMaskRightTop(Context context, Bitmap src, Bitmap watermark, int paddingRight, int paddingTop) {
+ return createWaterMaskBitmap(src, watermark,
+ src.getWidth() - watermark.getWidth() - dp2px(context, paddingRight),
+ dp2px(context, paddingTop));
+ }
+
+ /**
+ * 设置水印图片到左下角
+ *
+ * @param context
+ * @param src
+ * @param watermark
+ * @param paddingLeft
+ * @param paddingBottom
+ * @return
+ */
+ public static Bitmap createWaterMaskLeftBottom(Context context, Bitmap src, Bitmap watermark, int paddingLeft, int paddingBottom) {
+ return createWaterMaskBitmap(src, watermark, dp2px(context, paddingLeft),
+ src.getHeight() - watermark.getHeight() - dp2px(context, paddingBottom));
+ }
+
+ /**
+ * 设置水印图片到中间
+ *
+ * @param src
+ * @param watermark
+ * @return
+ */
+ public static Bitmap createWaterMaskCenter(Bitmap src, Bitmap watermark) {
+ return createWaterMaskBitmap(src, watermark,
+ (src.getWidth() - watermark.getWidth()) / 2,
+ (src.getHeight() - watermark.getHeight()) / 2);
+ }
+
+ /**
+ * 给图片添加文字到左上角
+ *
+ * @param context
+ * @param bitmap
+ * @param text
+ * @return
+ */
+ public static Bitmap drawTextToLeftTop(Context context, Bitmap bitmap, String text, int size, int color, int paddingLeft, int paddingTop) {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(color);
+ paint.setTextSize(dp2px(context, size));
+ Rect bounds = new Rect();
+ paint.getTextBounds(text, 0, text.length(), bounds);
+ return drawTextToBitmap(context, bitmap, text, paint, bounds,
+ dp2px(context, paddingLeft),
+ dp2px(context, paddingTop) + bounds.height());
+ }
+
+ /**
+ * 绘制文字到右下角
+ *
+ * @param context
+ * @param bitmap
+ * @param text
+ * @param size
+ * @param color
+ * @return
+ */
+ public static Bitmap drawTextToRightBottom(Context context, Bitmap bitmap, String text, int size, int color, int paddingRight, int paddingBottom) {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(color);
+ paint.setTextSize(dp2px(context, size));
+ Rect bounds = new Rect();
+ paint.getTextBounds(text, 0, text.length(), bounds);
+ return drawTextToBitmap(context, bitmap, text, paint, bounds,
+ bitmap.getWidth() - bounds.width() - dp2px(context, paddingRight),
+ bitmap.getHeight() - dp2px(context, paddingBottom));
+ }
+
+ /**
+ * 绘制文字到右上方
+ *
+ * @param context
+ * @param bitmap
+ * @param text
+ * @param size
+ * @param color
+ * @param paddingRight
+ * @param paddingTop
+ * @return
+ */
+ public static Bitmap drawTextToRightTop(Context context, Bitmap bitmap, String text, int size, int color, int paddingRight, int paddingTop) {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(color);
+ paint.setTextSize(dp2px(context, size));
+ Rect bounds = new Rect();
+ paint.getTextBounds(text, 0, text.length(), bounds);
+ return drawTextToBitmap(context, bitmap, text, paint, bounds,
+ bitmap.getWidth() - bounds.width() - dp2px(context, paddingRight),
+ dp2px(context, paddingTop) + bounds.height());
+ }
+
+ /**
+ * 绘制文字到左下方
+ *
+ * @param context
+ * @param bitmap
+ * @param text
+ * @param size
+ * @param color
+ * @param paddingLeft
+ * @param paddingBottom
+ * @return
+ */
+ public static Bitmap drawTextToLeftBottom(Context context, Bitmap bitmap, String text, int size, int color, int paddingLeft, int paddingBottom) {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(color);
+ paint.setTextSize(dp2px(context, size));
+ Rect bounds = new Rect();
+ paint.getTextBounds(text, 0, text.length(), bounds);
+ return drawTextToBitmap(context, bitmap, text, paint, bounds,
+ dp2px(context, paddingLeft),
+ bitmap.getHeight() - dp2px(context, paddingBottom));
+ }
+
+ /**
+ * 绘制文字到中间
+ *
+ * @param context
+ * @param bitmap
+ * @param text
+ * @param size
+ * @param color
+ * @return
+ */
+ public static Bitmap drawTextToCenter(Context context, Bitmap bitmap, String text, int size, int color) {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(color);
+ paint.setTextSize(dp2px(context, size));
+ Rect bounds = new Rect();
+ paint.getTextBounds(text, 0, text.length(), bounds);
+ return drawTextToBitmap(context, bitmap, text, paint, bounds,
+ (bitmap.getWidth() - bounds.width()) / 2,
+ (bitmap.getHeight() + bounds.height()) / 2);
+ }
+
+ //图片上绘制文字
+ private static Bitmap drawTextToBitmap(Context context, Bitmap bitmap, String text, Paint paint, Rect bounds, int paddingLeft, int paddingTop) {
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ if (bitmapConfig == null) {
+ bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+ Canvas canvas = new Canvas(bitmap);
+
+ canvas.drawText(text, paddingLeft, paddingTop, paint);
+ return bitmap;
+ }
+
+ /**
+ * 缩放图片
+ *
+ * @param src
+ * @param w
+ * @param h
+ * @return
+ */
+ public static Bitmap scaleWithWH(Bitmap src, double w, double h) {
+ if (w == 0 || h == 0 || src == null) {
+ return src;
+ } else {
+ // 记录src的宽高
+ int width = src.getWidth();
+ int height = src.getHeight();
+ // 创建一个matrix容器
+ Matrix matrix = new Matrix();
+ // 计算缩放比例
+ float scaleWidth = (float) (w / width);
+ float scaleHeight = (float) (h / height);
+ // 开始缩放
+ matrix.postScale(scaleWidth, scaleHeight);
+ // 创建缩放后的图片
+ return Bitmap.createBitmap(src, 0, 0, width, height, matrix, true);
+ }
+ }
+
+ /**
+ * dip转pix
+ *
+ * @param context
+ * @param dp
+ * @return
+ */
+ public static int dp2px(Context context, float dp) {
+ final float scale = context.getResources().getDisplayMetrics().density;
+ return (int) (dp * scale + 0.5f);
+ }
+}
\ No newline at end of file