簡體   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