繁体   English   中英

Android Canvas drawText不起作用

[英]Android Canvas drawText not working

我使用画布的drawText方法创建了一个自定义视图。 不知何故,这些文本都没有显示在任何Jelly Bean设备上。 它适用于ICS及以下版本。

有人知道该方法或任何相关方法的内容是否已从API 15更改为16吗?

编辑代码:(从提供画布作为参数的draw方法中进行)

    paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStrokeWidth(3);
    paint.setColor(context.getResources().getColor(R.color.plot_background));
    canvas.drawRect(new Rect(0,0,getWidth(),getHeight()), paint);
    paint.setColor(color_text);
    paint.setTextSize(getScaled(18.5f));
    paint.setTextAlign(Align.CENTER);
    canvas.drawText(title, (graphwidth / 2) + horstart, border/2+15, paint);

我知道该行已执行并且坐标正确,因为相同的代码可在较旧的平台上工作。

谢谢埃里克。 找出错误。 我基于canvas.getDensity()缩放应用程序中的所有内容。 由于某种原因,对于软心豆粒糖设备,此时draw函数始终为0的getDensity()。 但是它确实为1.6-> 4.0.3之间的任何值返回正确的值

我之所以没有发布代码(这是我的错)是因为我不怀疑getDensity()是问题所在,因为在过去两年中该应用程序投放市场以来从未如此。

解决方法是修改getScaled函数。

public float getScaled(Canvas canvas,float in){
    return in * ( canvas.getDensity()==0 ? 1 : canvas.getDensity()/ 160.0f);
} 

该文档确实说过可以返回DENSITY_NONE,但是我认为可能发生的是在Jelly Bean中为您进行缩放,因为如果我将其乘以1,它就可以在我刚刚测试的两个不同密度的设备上发挥作用上。

(PS:如果我输入错误或确认,熟悉Android OS内部结构的人可以纠正我吗?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM