0

我有这个自定义视图,它应该在页面中显示一个居中的框,具有不同的分辨率和显示。

(我删除了所有与文本相关的代码等):

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 应用程序标题栏和通知栏。截屏

那么,我怎样才能使我的盒子居中呢?我需要知道实际应用程序专用显示区域的大小,而不是全局显示大小......

4

0 回答 0