我有这个自定义视图,它应该在页面中显示一个居中的框,具有不同的分辨率和显示。
(我删除了所有与文本相关的代码等):
public class CustomView extends View {
    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        Paint x = new Paint();
        x.setColor(Color.BLUE);
        Resources r = getResources();               
        //dimension of display
         int displayW = r.getDisplayMetrics().widthPixels;
         int displayH = r.getDisplayMetrics().heightPixels;
         //
         int boxW = 200;
         int boxH = 300;
         //actual box dimensions
         float boxEffettivaW = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, boxW, r.getDisplayMetrics());
         float boxEffettivaH = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, boxH, r.getDisplayMetrics());
         float left = (displayW-boxEffettivaW) / 2;
         float top = (displayH-boxEffettivaH) / 2;
         float right = left + boxEffettivaW;
         float bottom = top + boxEffettivaH;
        RectF boxf = new RectF();
        boxf.set(left,top,right,bottom);    
        canvas.drawRect(boxf, x);       
    }
}
我的问题是该框未居中,因为 android 应用程序标题栏和通知栏。截屏
那么,我怎样才能使我的盒子居中呢?我需要知道实际应用程序专用显示区域的大小,而不是全局显示大小......