2012-04-25 216 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);