Android中心框

时间:2012-11-14 09:34:22

标签: android view center

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

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

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应用程序标题栏,并且因为通知栏。 screenshot

那么,我怎么能把箱子放在中心? 我需要知道实际应用程序专用显示区域的大小,而不是全局显示大小......

0 个答案:

没有答案