|
|
@ -1,44 +1,52 @@
|
|
|
|
package com.yinuo.library.vlc;
|
|
|
|
package com.yinuo.library.vlc
|
|
|
|
|
|
|
|
|
|
|
|
import android.graphics.Bitmap;
|
|
|
|
import android.graphics.Bitmap
|
|
|
|
import android.graphics.Color;
|
|
|
|
import android.graphics.Color
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.text.TextUtils
|
|
|
|
|
|
|
|
import org.easydarwin.util.YUVUtils
|
|
|
|
import org.easydarwin.util.YUVUtils;
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Created by John on 2017/2/23.
|
|
|
|
* Created by John on 2017/2/23.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
object TxtOverlay {
|
|
|
|
|
|
|
|
// 上一次展示的提示文字
|
|
|
|
|
|
|
|
private var mLastShowTip = ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 待展示的提示文字
|
|
|
|
|
|
|
|
private var mToDoShowTip = "1111111@2222222@333333"
|
|
|
|
|
|
|
|
|
|
|
|
public class TxtOverlay {
|
|
|
|
// 外部调用,设置待显示水印文字
|
|
|
|
|
|
|
|
fun setShowTip(string: String) {
|
|
|
|
|
|
|
|
mToDoShowTip = string
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
String mTip = "";
|
|
|
|
// 上一次展示的时间
|
|
|
|
long lastTipUpdateTime = 0;
|
|
|
|
private var lastTipUpdateTime: Long = 0
|
|
|
|
Bitmap bmp;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
|
|
|
|
// 文字生成的bitmap
|
|
|
|
|
|
|
|
private var bmp: Bitmap? = null
|
|
|
|
|
|
|
|
|
|
|
|
public TxtOverlay() {
|
|
|
|
// 时间格式化字符串
|
|
|
|
}
|
|
|
|
private val dateFormat = SimpleDateFormat("yy-MM-dd HH:mm:ss")
|
|
|
|
|
|
|
|
|
|
|
|
public Bitmap javaOverlayBm(String txt) {
|
|
|
|
fun buildOverlayBitmap(): Bitmap? {
|
|
|
|
if (TextUtils.isEmpty(txt)) {
|
|
|
|
if (TextUtils.isEmpty(mToDoShowTip)) {
|
|
|
|
return null;
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
long currentTimeMillis = System.currentTimeMillis();
|
|
|
|
val currentTimeMillis = System.currentTimeMillis()
|
|
|
|
// 限制获取bitmap的频率,保证性能
|
|
|
|
// 限制获取bitmap的频率,保证性能
|
|
|
|
if (TextUtils.isEmpty(mTip) || (!txt.equals(mTip) || currentTimeMillis - lastTipUpdateTime > 1000)) {
|
|
|
|
if (TextUtils.isEmpty(mLastShowTip) || mToDoShowTip != mLastShowTip || currentTimeMillis - lastTipUpdateTime > 1000) {
|
|
|
|
// 记录更新时间和上一次的文字
|
|
|
|
// 记录更新时间和上一次的文字
|
|
|
|
lastTipUpdateTime = currentTimeMillis;
|
|
|
|
lastTipUpdateTime = currentTimeMillis
|
|
|
|
mTip = txt;
|
|
|
|
mLastShowTip = mToDoShowTip
|
|
|
|
// 文字转bitmap
|
|
|
|
// 文字转bitmap
|
|
|
|
bmp = YUVUtils.generateBitmap(dateFormat.format(lastTipUpdateTime) + "@" + txt, 40, Color.WHITE);
|
|
|
|
bmp = YUVUtils.generateBitmap(
|
|
|
|
|
|
|
|
dateFormat.format(lastTipUpdateTime) + "@" + mToDoShowTip, 40, Color.WHITE
|
|
|
|
|
|
|
|
)
|
|
|
|
// 缩放旋转bitmap
|
|
|
|
// 缩放旋转bitmap
|
|
|
|
// bmp = YUVUtils.rotateImage(bmp, 0);
|
|
|
|
// bmp = YUVUtils.rotateImage(bmp, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return bmp;
|
|
|
|
return bmp
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|