gpt4 book ai didi

Android Canvas drawText 不工作

转载 作者:搜寻专家 更新时间:2023-11-01 08:08:30 24 4
gpt4 key购买 nike

我使用 Canvas 的 drawText 方法制作了一个自定义 View 。不知何故,没有任何文本显示在任何 Jelly Bean 设备上。它适用于 ICS 及以下版本。

有谁知道此方法或任何相关方法从 API 15 到 16 是否有任何更改?

编辑代码:(来自 Canvas 作为参数提供的绘制方法)

    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() 缩放应用程序中的所有内容。 getDensity() 目前出于某种原因,果冻 bean 设备的绘制函数始终为 0。但它确实会为 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,它在两个不同密度的设备上起到了很好的作用我刚刚测试了。

(P.S. 如果我错了或确认,熟悉 Android 操作系统内部的任何人都可以纠正我吗?)

关于Android Canvas drawText 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12120042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com