我正在尝试将文字放在地图标记上,但它始终显示在其下方.
首先,我将drawable转换为bitmap,然后在其上绘制文本.可绘制到位图的转换效果很好,我只有文字覆盖问题.
我已经尝试过这些:
> Adding text to a bitmap in memory in Android
> https://stackoverflow.com/a/7328777/3423468
> https://stackoverflow.com/a/8831182/3423468
还有更多没有运气的.
这是我目前的方法:
Bitmap drawabletoBitmap(Drawable drawable) { var bitmap = Bitmap.createBitmap(drawable.getIntrinsicWIDth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); var canvas = new Canvas(bitmap); if (shouldDrawText) { Paint paint = new Paint(); paint.setcolor(color.WHITE); paint.setstrokeWIDth(40); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER)); // Text OverlapPing Pattern //canvas.drawBitmap(bitmap, 0, 0, paint); canvas.drawText("Testing...", 10, 10, paint); } drawable.SetBounds(0, 0, canvas.WIDth, canvas.Height); drawable.Draw(canvas); return bitmap; }
有什么想法我做错了吗?
解决方法:
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER)); // Text OverlapPing Pattern
在这里,您使用SRC_OVER,这意味着源将在DST下方. DST是要绘制的新像素.
您应该使用DST_OVER在旧像素之上绘制新像素.
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OVER)); // Text OverlapPing Pattern
在此查看Porterduff工作原理的概述
以上是内存溢出为你收集整理的android-在位图上绘制文本全部内容,希望文章能够帮你解决android-在位图上绘制文本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)