2012-04-25 115 views
0

我想在我的佈局中繪製一些文字,即全屏問題是我可以得到一個準確的點。以下是我編碼的內容:用畫布在屏幕角落繪製

DisplayMetrics display = getResources().getDisplayMetrics(); 
        int width = display.widthPixels; 
        String data_azi = DateFormat.getDateTimeInstance().format(new Date()); 
        cnv.drawText(data_azi, width - p.measureText(data_azi), 40,p); 

回答

1

您需要預先測量並在繪圖時使用該測量。例如,您可以在初始時調用measureText()。此方法測量當前日期的寬度並將20%添加到測量的寬度。

private final Rect mBounds = new Rect(); 
private final Date mDate = new Date(); 


private void measureText(final Paint p){ 
    final String dummy = DateFormat.getDateTimeInstance().format(mDate); 
    p.getTextBounds(dummy, 0, dummy.length(), mBounds); 
    final int inset = (int) (mBounds.width()*0.1f); //add safety margin 
    mBounds.inset(-inset, 0); 
} 

然後你得出這樣的:

mDate.setTime(System.currentTimeMillis()); 
String data_azi = DateFormat.getDateTimeInstance().format(mDate); 
cnv.drawText(data_azi, width - mBounds.width(), mBounds.height(),p); 

另外,還要確保您的油漆對象左對齊p.setTextAlign(Align.LEFT);