屏幕的左上角是系統座標原點(0,0),包括標題欄,通知欄高度。android
getTop:獲取到的,是view自身的頂邊到其父佈局頂邊的距離canvas
getLeft:獲取到的,是view自身的左邊到其父佈局左邊的距離佈局
getRight:獲取到的,是view自身的右邊到其父佈局左邊的距離this
getBottom:獲取到的,是view自身的底邊到其父佈局頂邊的距離spa
getX():獲取點擊事件相對控件左邊的x軸座標,即點擊事件距離控件左邊的距離orm
getY():獲取點擊事件相對控件頂邊的y軸座標,即點擊事件距離控件頂邊的距離事件
getRawX():獲取點擊事件相對整個屏幕左邊的x軸座標,即點擊事件距離整個屏幕左邊的距離ci
getRawY():獲取點擊事件相對整個屏幕頂邊的y軸座標,即點擊事件距離整個屏幕頂邊的距離。系統座標原點。get
c.getLocationInWindow():座標原點在Bit
c.getLocationOnScreen():座標原點在A,系統座標原點。
1、new HelloView時View的原點:
/** * 初始化繪製線的畫筆 * */ public void initLinePaint(){ linePaint = new Paint(); // 設置畫筆 linePaint.setColor(Color.GREEN); linePaint.setAntiAlias(true); linePaint.setStrokeWidth(5); // 設置線寬 } /** * 繪製View * */ protected void onDraw(Canvas canvas){ Log.v("onDraw(Canvas canvas)","" + this.getHeight()+ " " + this.getWidth()); canvas.drawColor(Color.WHITE); initLinePaint(); // 初始化畫筆 myUseBitmapFactory(canvas); canvas.drawLine(0, 0, this.getWidth(), this.getHeight(), linePaint); }
|
運行:
2、使用XML中佈局文件時的View原點:
/** * 使用自定義的View * */ public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);// 使用自定義的View } } |
這裏直接給出運行結果圖: