在图像android中画一个文本

在图像android中画一个文本,第1张

概述我必须在地图视图上放置标记并在标记上写一个数字.我已经这样做了,但文本对齐方式因不同分辨率而异.下面是参考代码 float xVal = (float) curScreenCoords.x; // Point curScreenCoords float yVal = (float) curScreenCoords.y-20; // Point curScreenCoords 我必须在地图视图上放置标记并在标记上写一个数字.我已经这样做了,但文本对齐方式因不同分辨率而异.下面是参考代码

float xVal = (float) curScreenCoords.x;  // Point curScreenCoords        float yVal = (float) curScreenCoords.y-20; // Point curScreenCoords        Bitmap bitmap = BitmapFactory.decodeResource ( context.getResources(),( R.drawable.pin_number ) ) ;        canvas.drawBitmap(bitmap,xVal,yVal,getInnerPaint());         public Paint getInnerPaint() {         if (innerPaint == null) {             innerPaint = new Paint();         }        innerPaint.setARGB(255,117,161,220); // blue        innerPaint.setAntiAlias(true);          innerPaint.setStyle(Style.FILL);        return innerPaint;        }        canvas.drawText(String.valueOf(10),xVal+20,yVal+22,getCountPaint()); // 10 is just for example,it can vary to one digit to two to three         public Paint getCountPaint() {        if (innerPaint == null) {        innerPaint = new Paint();        }        innerPaint.setARGB(255,255,255);         innerPaint.setAntiAlias(true);          innerPaint.setStyle(Style.FILL);        innerPaint.setTextSize(12f);        innerPaint.setTextAlign(Align.CENTER);        return innerPaint;       }

一切正常,除了文本对齐,此代码适用于480 * 800分辨率.文本在画布中完全居中对齐. x,y位置在图像上是完美的,但在320 * 480上看起来并不完美.文本的x和y位置在此分辨率上看起来不同.任何人都可以建议我究竟发生了什么错误?在不同尺寸的设备上做同样的事情还有什么基础吗?提前致谢.

解决方法 您的值curScreenCoords.y-20和xVal 20,yVal 22具有所有分辨率的恒定像素偏移,但它们应取决于设备的像素密度,如下所示:

xOffset = (int) (13.33f * context.getResources().getdisplayMetrics().density + 0.5f);yOffset = (int) (14.67f * context.getResources().getdisplayMetrics().density + 0.5f);canvas.drawText(String.valueOf(10),xVal + xOffset,yVal + yOffset,getCountPaint());
总结

以上是内存溢出为你收集整理的在图像android中画一个文本全部内容,希望文章能够帮你解决在图像android中画一个文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存